再議extern和include的作用


先引入一下題啊,主要是看到有人這樣寫


 

我個人覺的這樣寫沒什么意思,沒有體現出了extern的特性。

  為什么我要這樣說,先談談include,總是有人覺得這個東西很神秘,很特殊不知道他干了什么。其實它沒有我們想象的那么神秘,它就是把包含的文件完全的放到當前文件展開。在什么時候展開那在預編譯簡單就會完全的展開。對於上面的圖片里的例子就是把1.c里面的倆句代碼放到了2.c。
  extern這個詞是干什么的那?它是你在寫C語言的時候寫了幾個文件,比如上面,1.c和2.c 但是注意在2.c里面人家可不用包含了,這個時候就要用extern這個詞來聲明。告訴編譯器下面用到的變量雖然我在。但注意extern只能修飾全局變量
  當前文件中並沒有定義,但是我在其他文件是定義了的,編譯器你就不要報錯了。它的作用就是這個,回到我們上面說的 “我個人覺的這樣寫沒什么意思,沒有體現出了extern的特性。“大家想想就了可以理解extern是修飾倆個文件的,而你用include已經成了一個一個文件,就沒必要修飾了。

 還沒完,那include就沒用了嗎?在有較多的extern引入的時候我們可以寫一個頭文件,頭文件里面寫上這一堆extern。然后在包進去,然后在預編譯的時候展開,就和我們寫在里面一樣。

 

 

函數中的extern 

對於函數的extern其實和上面的大同小異,我們平常說函數中的聲明,大家應該都知道,那就是函數在下面定義的時候需要在上面聲明。這時是不用extern的。

但是如果是在外部定義了函數,你還不加,那么就會在編譯的時候報警告

下面是我寫的倆種截圖 下面的那種我對聲明又進一步封裝到頭文件。

第二種寫法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM