導航:首頁 > 源碼編譯 > 頭文件編譯條件

頭文件編譯條件

發布時間:2022-06-02 19:48:37

⑴ 請教高手關於頭文件條件編譯#ifndef的問題 下面的程序有哪位高手給解釋一下啊 各個層次關系 小弟看不懂

最外層的#ifdef是這個樣子:

#ifndef __MENU_H
#define __MENU_H
...
#endif /* __MENU_H */

這是為了確保menu.h只被包含一次。第二次包含時,由於__MENU_H已經被定義,整個文件的內容就被跳過了。

__cplusplus是個特殊的宏,只在C++程序中被定義。這樣,在C代碼中,看到的代碼是這個樣子的:

...
void Show_HomeScreen(void);

而在C++代碼中,看到的則是這個樣子:

extern "C" {
...
void Show_HomeScreen(void);

}

最主要的用處是函數被聲明為extern "C",也就是在目標文件中用C的方式進行編碼和查找。C的方式只有函數名,而C++的方式則把參數也編碼了進去,這樣才可能允許函數重載。比如,test(int)在C代碼里的符號名就是test,而在C++中則不同。在MSVC(在不同編譯器中不同)中是「?test@@YAXH@Z」。一個函數要同時在C和C++中使用,一般都回在頭文件聲明時放到一個extern "C"塊里。

⑵ 關於C語言中頭文件的條件編譯的問題

例如,常會將結構體類型的定義放在頭文件中(例如FILE結構體,tm結構體等),如果不加條件編譯,那麼就可能會出現同一個程序中的不同文件由於包含了同一個頭文件而導致同一個結構體類型的重復定義,而C中不允許重復定義,所以會出錯。

⑶ 關於c語言頭文件編譯和運行的問題

1、只要在程序開頭加入#include<頭文件名>,在編譯過程當中,頭文件自動會被添加到源文件當中一起進行編譯。
2、編譯,編譯程序讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,再由匯編程序轉換為機器語言,並且按照操作系統對可執行文件格式的要求鏈接生成可執行程序。
C源程序頭文件-->預編譯處理(cpp)-->編譯程序本身-->優化程序-->匯編程序-->鏈接程序-->可執行文件。

⑷ c++中如何編譯頭文件,編譯頭文件的作用,

編譯頭文件的理解竅門,在include語句。
你可以理解為,include就是替換,在編譯的時候,在include的位置完整的將頭文件「嵌入」進去,在cpp文件中共同編譯。如果一個頭文件沒有被任何文件包含(include),那麼它不會編譯。
頭文件,你可以簡單的認為就是「避免重復」,將重復的聲明放在一起,方便代碼閱讀和管理,同時頭文件具有方便介面和安全檢查方面的作用。

⑸ 為什麼在頭文件裡面用條件編譯呢程序如下

防止重復編譯。比如,第一次使用該頭文件後,LCDHEARD被定義過,以後再使用該頭文件,就不會重新編譯了。

⑹ 為什麼C語言頭文件中要用條件編譯

如果你說的是文件中避免重復包含的預處理指令,有兩個原因
a)重復編譯相同的內容,即使不會導致語法錯誤,對編譯器也是極大的開銷,在大工程中,絕對是不可容忍的,持續編譯集成的代價是很高的,能省必須省

b) 有很多語法元素是不可重復編譯的,例如類型定義。你僅僅考慮變數,是遠遠不夠的。實際中,變數在頭文件中的使用是非常少的,因為全局變數也是能避免就避免的

⑺ c語言中如何編譯頭文件啊

  1. 只要在程序開頭加入#include<頭文件名>,在編譯過程當中,頭文件自動會被添加到源文件當中一起進行編譯。

  2. 編譯,編譯程序讀取源程序(字元流),對之進行詞法和語法的分析,將高級語言指令轉換為功能等效的匯編代碼,再由匯編程序轉換為機器語言,並且按照操作系統對可執行文件格式的要求鏈接生成可執行程序。
    C源程序頭文件-->預編譯處理(cpp)-->編譯程序本身-->優化程序-->匯編程序-->鏈接程序-->可執行文件。

閱讀全文

與頭文件編譯條件相關的資料

熱點內容
手機qq發壓縮包 瀏覽:677
安卓機藍牙耳機如何彈出彈窗 瀏覽:111
linuxoracle環境變數設置 瀏覽:359
php去掉重復數據 瀏覽:365
C關機編程 瀏覽:767
程序員將滑鼠拉到現實世界 瀏覽:60
思科伺服器怎麼開機 瀏覽:82
減脂健身app哪個好用 瀏覽:743
照片怎麼壓縮分文件夾 瀏覽:70
感測器如何連接單片機 瀏覽:26
雲伺服器多少個 瀏覽:598
孕媽app哪個比較好 瀏覽:809
java回車轉義字元 瀏覽:759
linux啟動級別修改 瀏覽:123
單片機採集交流方法 瀏覽:285
程序員的平凡理想 瀏覽:238
floyd最短路徑演算法c 瀏覽:387
新湖app在哪裡下載 瀏覽:709
計算機圖形學涉及的演算法 瀏覽:376
阿里雲linux一鍵web 瀏覽:32