衝擊年薪50w,助你高階python工程師》
inline void printvalidatemsg(const char* file,int line,const char* cond,const char* msg)
#define my_validate(cond,ret,msg) \
if(cond) \
else \
struct threadkitdummyclass
1、當需要返回為void時,ret欄位需要為空,如下面只有2個引數,中間的為空內容。
void fun()
2、目前主流的編譯器都可以正確編譯,c99支援空的引數。
3、上次在linux gcc 4.4下,makefile中被加上-pedantic,好象是使用了c90標準,結果編譯失敗。用my_validate(i==0,void(0),null)可以在該方式下編譯通過。
c 中的巨集定義 g 中引數
如果定義debug時才能出現的函式呼叫,那麼就可以這樣寫 ifdef debug define debug x endif ifdef release define debug x endif 使用就可以直接使用debug abc 然後在g 或者gcc編譯時使用 g def.cpp d deubg,...
c 中的巨集定義 g 中引數
如果定義debug時才能出現的函式呼叫,那麼就可以這樣寫 ifdef debug define debug x endif ifdef release define debug x endif 使用就可以直接使用debug abc 然後在g 或者gcc編譯時使用 g def.cpp d deubg,...
C 可變引數的巨集
可變引數的巨集 1.可變引數的巨集是c99規範開始支援的,具體用法如下 define debug printf va args 預設號代表乙個可以變化的參數列。使用保留名 va args 把引數傳遞給巨集。當巨集的呼叫展開時,實際的引數就傳遞給 printf 了。如果預設號之前有逗號,就要寫成下面的...