2014-04-03 38 views

回答

1

如果要創建所有的自己的定義,包括va_list的,然後 我假設你在創建的定義(一個或多個)。^h看着至少類似到:

#ifndef _VA_LIST_DEFINED 
#ifdef _M_CEE_PURE 
typedef System::ArgIterator va_list; 
#else 
typedef char * va_list; 
#endif 
#define _VA_LIST_DEFINED 
#endif 

只是包含這個.H以往您使用VERS哪裏printf的

然而的離子,如果您使用標準的C定義的va_list,的va_start,在va_arg等。等等,然後簡單地包含stdarg.h。

在任一情況,這裏是一個簡單的可變參數函數的一個例子(未printf的,只是一個簡單的例子)使用va_宏:

#include <stdarg.h> 

void variadic_function(int Param, ...) 
{ 
    int dslot; 
    va_list params; 
    va_start(params, Param); 
    dslot = va_arg(params, int); 
    va_end(args); 
} 

進一步閱讀this Wiki article及其鏈接完善了主題。

0

在使用va_list和朋友之前,您應該包含stdarg.h頭文件。

你頭文件可能是這樣的:

#include <stdarg.h> 
... 
int my_printf (const char *format, ...); 
... 
相關問題