C++11 變長參數的宏定義以及__VA_ARGS__


【1】變長參數的宏定義以及__VA_ARGS__

在C99標准中,我們就已經可以使用變長參數的宏定義。

變長參數的宏定義是個神馬?就是在宏定義的參數列表中最后一個參數為省略號。

而現在C++ 11中,使用預定義宏__VA_ARGS__可以在宏定義的實現部分替換省略號所代表的字符串。

原書示例:

#include <stdio.h>

#define LOG(...) { \
fprintf(stderr, "%s: Line %d:\t", __FILE__, __LINE__); \
fprintf(stderr, __VA_ARGS__); \
fprintf(stderr,"\n"); \
}

int main()
{
    int x = 3;
    LOG("x = %d", x);
}

定義LOG宏來記錄代碼位置中一些信息,程序員可以根據stderr產生的日志追索到代碼中產生這些記錄的位置。

引入這樣的特性,對於輕量級調試,簡單的錯誤輸出都是有積極意義的。

good good study, day day up.

順序 選擇 循環 總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM