- 論壇徽章:
- 0
|
我希望在一個可變參數(shù)函數(shù)中調(diào)用另一個可變參數(shù)的函數(shù),
將參數(shù)直接傳遞下去,應(yīng)該如何傳遞呢?
- #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);
- }
復(fù)制代碼 |
|