久久久久久久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电影院
|
国产精品毛片一区二区在线看
|
欧美亚洲一区二区三区
|