C++11新特性學習筆記—變長參數的宏定義以及__VA_ARGS__

在C99標準中,我們就已經可以使用變長參數的宏定義。變長參數的宏定義是啥??就是在宏定義的參數列表的最後一個參數爲省略號。而現在C++ 11 中,可以使用預定義宏__VA_ARGS__可以在宏定義的實現部分替換省略號所代表的字符串。

     EX:

     

#include <stdio.h>

//定義LOG宏來記錄代碼位置中一些信息,程序員可以根據stderr產生的日誌追索到代碼中產生
//這些記錄的位置。引入這樣的特性,對於輕量級調試,簡單的錯誤輸出都是有積極意義的
#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);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章