- 论坛徽章:
- 0
|
我希望在一个可变参数函数中调用另一个可变参数的函数,
将参数直接传递下去,应该如何传递呢?
- #include "stdio.h"
- #include "stdarg.h"
- #include "memory.h"
- #define MAX_LEN 100
- char msg[MAX_LEN];
- void printL1(const char *fmt, ...)
- {
- va_list args;
- memset(msg,0,sizeof(msg));
- #if 0 // 这个方法是不行的
- va_start(args, fmt);
- printf(args, fmt);
- #else // 这个是可以的,但是不希望采用这种方法,还有其他办法没?
- va_start(args, fmt);
- _vsnprintf(&msg[0],MAX_LEN-1,(char *)fmt,args);
- printf("%s",msg);
- #endif
- va_end(args);
- }
- void main(void)
- {
- int para1 = 1024;
- int para2 = 512;
- int para3 = 0;
- printL1("para1:%d\npara2:%d\npara3:%d\n ",para1,para2,para3);
- }
复制代码 |
|