今天在看公司原來程式的時候發現有一些巨集變數使用了#跟##,專門查了一下它們的用法。
下面的從網上找到的
1、#.引數名以#作為字首則結果將被擴充套件為由實際引數的帶引號的字串。
例如:
#if 0
#include #define dprint(expr) printf(#expr "= %d\n",expr);
int main()
#endif
最後程式將輸出a/b=2.
2、##將會進行字串的連線。
例如:
#if 1
#include #define createfun(name1,name2) \
void name1 ## name2 () \
createfun(the,function)
int main()
#endif
最後程式將會輸出:thefunction called.
下階段我會寫一些自己的#跟##,來加強訓練。
C語言中的typedef跟define的區別
今天用c語言練習時涉及到了typedef和define的使用問題,那麼他們的區別是啥?這種情況下為什麼要用typedef?哪種情況下為什麼要用define呢?學習c的時候的你是否考慮過這個問題呢?今天我決定梳理一下,以備後用。相同點 1 都可以給變數起別名 不同點 1 define定義後可以擴充套件...
C語言中extern的用法
在c語言中,修飾符extern用在變數或者函式的宣告前,用來說明 此變數 函式是在別處定義的,要在此處引用 1.extern修飾變數的宣告。舉例來說,如果檔案a.c需要引用b.c中變數int v,就可以在a.c中宣告extern int v,然後就可以引用變數v。這裡需要注意的是,被引用的變數v的鏈...
C語言中extern的用法
第一篇 一,static和extern 大工程下我們會碰到很多原始檔。檔案a.c static int i 只在a檔案中用 int j 在工程裡用 static void init 只在a檔案中用 void callme 在工程中用 上面的全域性i變數和init 函式只能用在a.c檔案中,全域性變數...