__va_args__ 是乙個可變引數的巨集(gcc支援)。實現思想就是巨集定義中引數列表的最後乙個引數為省略號(也就是三個點)。這樣預定義巨集_ _va_args_ _就可以被用在替換部分中,替換省略號所代表的字串。加##用來支援0個可變引數的情況。
測試**:
#include
#define print_dbg(debug, ...)\
\ }
#define macro(s, ...) printf(s, ##__va_args__)
int main()
編譯:gcc -o vaargs vaargs.c
執行: ./vaargs
vaargs.c main [16]: hello
vaargs.c main [17]: world, 100
hello, world
hello, fanrey
可變引數巨集 VA ARGS
可變引數巨集 va args 在 gnu c 中,巨集可以接受可變數目的引數,就象函式一樣,例如 define pr debug fmt,arg.printk kern debug fmt,arg 用可變引數巨集 variadic macros 傳遞可變參數列 你可能很熟悉在函式中使用可變參數列,如...
可變引數巨集 VA ARGS
可變引數巨集 va args 在 gnu c 中,巨集可以接受可變數目的引數,就象函式一樣,例如 define pr debug fmt,arg.printk kern debug fmt,arg 用可變引數巨集 variadicmacros 傳遞可變參數列 你可能很熟悉在函式中使用可變參數列,如 ...
可變引數巨集 VA ARGS
可變引數巨集 va args 在 gnu c 中,巨集可以接受可變數目的引數,就象函式一樣,例如 define pr debug fmt,arg.printk kern debug fmt,arg 用可變引數巨集 variadic macros 傳遞可變參數列 你可能很熟悉在函式中使用可變參數列,如...