可變引數巨集 VA ARGS

2021-09-06 23:46:00 字數 458 閱讀 1793

__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 傳遞可變參數列 你可能很熟悉在函式中使用可變參數列,如...