关于__VA_ARGS__的说明
生活随笔
收集整理的這篇文章主要介紹了
关于__VA_ARGS__的说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
__VA_ARGS__宏是C99 引入的對參數個數可變的函數式宏的正式支持
#define name(args, ...) tokens #define name(...) tokens"…“代表可變參數列表, 如果它不是僅有的參數, 那么它只能出現在參數列表的最后. 調用這樣的函數宏時, 傳遞給它的參數個數要不少于參數列表中參數的個數(多余的參數被丟棄).
通過__VA_ARGS__來替換函數宏中的可變參數列表. 注意__VA_ARGS__只能用于函數宏中參數中包含有”…"的情況.
如果是
#define my_print1(fmt,...) printf(fmt,##__VA_ARGS__)
那么my_print1里面不管是幾個參數都能正確打印
##VA_ARGS 宏前面加上##的作用在于,當可變參數的個數為0時,這里的##起到把前面多余的","去掉的作用,否則會編譯出錯
總結
以上是生活随笔為你收集整理的关于__VA_ARGS__的说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于bhuman文件结构
- 下一篇: 构造函数初始化结构体