久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 關于define的用法 [打印本頁]

作者: huge    時間: 2015-2-19 00:21
標題: 關于define的用法
#ifdef OS_GLOBALS....................................1
#define OS_EXT........................................2
#else..................................................3
#define OS_EXT extern................................4
#endif.................................................5
意思就是說,如果 OS_GLOBALS被定義,則本文件中的 OS_EXT被
替換為空(被忽略), 如果 OS_GLOBALS未被定義,則本文件中的
OS_EXT 被替換為 extern關鍵字. 意義比較明確, 就是給出了
本文件中哪些變量和函數,在何時需要使用 extern引用 (取決
于其他文件中有無定義 OS_GLOBALS.
為方便你理解, 舉個例子.
現在有兩文件 AAA.c和 BBB.c
AAA.c內容是
#define OS_GLOBALS
BBB.c內容是
#ifdef OS_GLOBALS
#define OS_EXT
#else
#define OS_EXT extern
#endif
OS_EXT void function1(void);
如果AAA.c先于BBB.c編譯時,OS_GLOBALS被定義,在BBB.c里,實際上是
void function1(void); // 聲明了自己的函數
如果BBB.c先于AAA.c編譯,則OS_GLOBALS被定義,在BBB.c里,實際上是
extern void function1(void); // 聲明了外部的一個函數.


另外,你想了解的比較重要的是,為什么define后面可以只有一個名字,這個語句的意思就是,將XXXX替換為空(從文本上忽略).比如
#define OS_EXT
意思就是說,在本文件中,凡OS_EXT文本串,在編譯時都被替換成空白,被忽略,或者說刪除.然而,這不影響它作為#ifdef判斷的有效性,OS_EXT仍然是一個被define過的東西.就這個意思,應該理解了吧.







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲国产aⅴ成人精品无吗 综合国产在线 | 欧美福利专区 | 中文欧美日韩 | 久久国产精品网站 | 国产成人久久精品一区二区三区 | 97超碰在线播放 | 青青草网站在线观看 | 日韩视频精品在线 | 在线成人 | 毛片免费观看 | 日韩精品一区二区三区免费观看 | 亚洲一区二区日韩 | 亚洲色图在线观看 | 午夜av成人 | 欧美一级免费 | 色综合色综合色综合 | 精品无码久久久久久久动漫 | 日韩精品一区二区三区老鸭窝 | 97在线观视频免费观看 | 精品国产伦一区二区三区观看方式 | 免费国产一区 | 欧美9999| 国内自拍视频在线观看 | 91精品观看| 亚洲香蕉 | 欧美黄在线观看 | 午夜精品一区二区三区免费视频 | 成人欧美日韩一区二区三区 | 久久国品片| 日韩av电影在线观看 | 欧区一欧区二欧区三免费 | 国产欧美日韩在线观看 | 91玖玖 | 国产一区二区三区 | jⅰzz亚洲| 天天操天天干天天透 | 国产高清在线观看 | a毛片| 日韩av电影院 | 国产精品毛片一区二区在线看 | 欧美亚洲一区二区三区 |