• printf以及各种变种


    int printf(char *format, [argument]); 其向终端(显示器、控制台等)输出字符

    int fprintf(FILE*stream, const char*format, [argument]); 传送格式化输出到一个文件中
    int sprintf( char *buffer, const char *format, [ argument] … ); 危险!把格式化的数据写入某个字符串缓冲区。 如果buffer太小,容易溢出,导致程序奔溃。
    int snprintf(char *str, size_t size, const char *format, ...); 将可变个参数(...)按照format格式化成字符串,然后将其复制到str中,长度最多size-1, str末尾自动添加。

    v打头的vxprintf,跟原函数功能类似
    int vprintf(char *format, va_list param);       用一个参数取代了变长参数表,且此参数通过调用va_start宏进行初始化

    变参的原理在于利用了参数在stack的分布
    va_start(argptr,fmt);               #define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )     其实就是实现了C语言下的不确定参数功能
    cnt=vprintf(fmt,argptr);
    va_end(argptr);                      #define va_end(ap) ( ap = (va_list)0 )      // 将指针置为无效

     

  • 相关阅读:
    夜空中最亮的星
    让我留在你身边
    反思
    又想起民谣那诗
    初学积性函数
    P1049 装箱问题(01背包)
    set
    紫书 习题 10-4 UVa 1644(素数筛)
    紫书 习题 10-2 UVa 808(建立坐标+找规律)
    紫书 习题 10-1UVa 111040(找规律)
  • 原文地址:https://www.cnblogs.com/zzSoftware/p/3756907.html
Copyright © 2020-2023  润新知