亚洲春色中文字幕久久久-三上亚,91精品国产亚一区二区三区,久久久九色综合亚洲成色777,涩涩视频下载,国产午夜亚洲精品午夜鲁丝片,国产精品A一区二区三区腾讯导航,影音先锋色情AV在线看片,蜜臀国产在线视频,极品少妇高潮啪啪无码吴梦梦 ,精品人妻无码一区二区三区手机版

標(biāo)題: C語(yǔ)言在頭文件中定義全局變量的方法 [打印本頁(yè)]

作者: 心二月    時(shí)間: 2018-3-15 17:04
標(biāo)題: C語(yǔ)言在頭文件中定義全局變量的方法
  教大家一個(gè)如何在頭文件中定義全局變量的方法
  通常情況下,都是在C文件中定義全局變量,在頭文件中聲明,但是,如果我們定義的全局變量需要被很多的C文件使用的話,那么將全局變量定義在頭文件里面會(huì)方便很多,那到底是如何實(shí)現(xiàn)的?
  os_var.c文件內(nèi)容
  #define OS_GLOBALS
  /*
  * os.h中定義很多的全局變量,但是os.h又需要被很多的c文件調(diào)用,如果不特殊處理的話,會(huì)出現(xiàn)全局變量多次定義的錯(cuò)誤,
  * 為了實(shí)現(xiàn)在os.h中定義全局變量,在os.h的開頭加入以下宏定義,且在全局變量前面都加上“OS_EXT”
  * #ifdef OS_GLOBALS
  * #define OS_EXT
  * #else
  * #define OS_EXT extern
  * #endif
  * 然后單獨(dú)定義一個(gè)os_var.c文件,然后包含os.h,且只在這個(gè)文件里面定義宏“OS_GLOBALS”,在其他包含os.h的文件中
  * 都不定義宏“OS_GLOBALS”,那么在編譯的時(shí)候,只有os_var.c里面的os.h里面的全局變量前面的OS_EXT才展開為空,其他
  * 文件中包含的os.h中的全局變量前面的OS_EXT就展開為extern,即聲明,而不是定義,這樣就實(shí)現(xiàn)了在os.h中定義全局變量。
  */
  #include “os.h”
  os.huC/OS-III的總的頭文件,里面定義了很多的全局變量,而且這個(gè)頭文件會(huì)被很多的C文件調(diào)用,為了防止重復(fù)定義全局變量的問(wèn)題,故采取了上面的方法,即單獨(dú)新建一個(gè)C文件os_var.c,然后在這個(gè)C文件里面定義OS_GLOBALS這個(gè)宏,然后再包含os.h這個(gè)頭文件。那么只有在編譯os_var.c的時(shí)候,os.h里面的全局變量才是定義,其它c文件里面的os.h的變量都是聲明,因?yàn)槠渌?/font>C文件我們不會(huì)定義OS_GLOBALS這個(gè)宏。







歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1