词条 | vsprintf |
释义 | /* 函数名: vsprintf 功 能: 送格式化输出到串中 返回值: 正常情况下返回生成字串的长度(除去\\0),错误情况返回负值 用 法: int vsprintf(char *string, char *format, va_list param); // 将param 按格式format写入字符串string中 注: 该函数会出现内存溢出情况,建议使用vsnprintf 程序例: */ #include <stdarg.h> char buffer[80]; int vspf(char *fmt, ...) { va_list argptr; int cnt; va_start(argptr, fmt); cnt = vsprintf(buffer, fmt, argptr); va_end(argptr); return(cnt); } int main(void) { int inumber = 30; float fnumber = 90.0; char string[4] = "abc"; vspf("%d %f %s", inumber, fnumber, string); printf("%s\", buffer); return 0; } 该程序结果为 30 90.000000 abc VA_LIST的用法( VA_LIST 是在C语言中解决变参问题的一组宏): (1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针 (2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个 参数是第一个可变参数的前一个参数,是一个固定的参数。(如在运行VA_START (ap,v)以后,ap指向第一个可变参数在堆栈的地址。) (3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型。 (4)最后用VA_END宏结束可变参数的获取。然后你就可以在函数里使用第二个参数了。 如果函数有多个可变参数的,依次调用VA_ARG获取各个参数。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。