標頭檔案的處理

2022-08-17 13:48:21 字數 1062 閱讀 4508

#ifndef x

#define x

...

#endif

這是巨集定義的一種,它可以根據是否已經定義了乙個變數來進行分支選擇,一般用於除錯等等  

#ifndef x

//先測試x是否被定義過  

#define x

//如果沒有定義下面就定義x並執行下面的語句  

...

#endif

//如果已經定義了則執行#endif後面的語句  

條件指示符#ifndef檢查預編譯常量在前面是否已經被定義。如果在前面沒有被定義,則條件指示符的值為真,於是從#ifndef到#endif之間的所有語句都被包含進來進行處理。相反,如果#ifndef指示符的值為假,則它與#endif指示符之間的行將被忽略。條件指示符#ifndef 的最主要目的是防止標頭檔案的重複包含和編譯。  

補充一些內容:  標頭檔案中的#ifndef  千萬不要忽略了頭件的中的#ifndef,這是乙個很關鍵的東西。比如你有兩個c檔案,這兩個c檔案都include了同乙個標頭檔案。而編譯時,這兩個c檔案要一同編譯成乙個可執行檔案,於是問題來了,大量的宣告衝突。

還是把頭檔案的內容都放在#ifndef和#endif中吧。不管你的標頭檔案會不會被多個檔案引用,你都要加上這個。

一般格式是這樣的:

#ifndef 《標識》  

#define 《標識》   

......   

......

#endif

《標識》在理論上來說可以是自由命名的,但每個標頭檔案的這個「標識」都應該是唯一的。標識的命名規則一般是頭檔名全大寫,前後加下劃線,並把檔名中的「.」也變成下劃線,如:stdio.h

#ifndef _stdio_h_

#define _stdio_h_  

......   

#endif

關於工程標頭檔案的處理

不妨先看個例子吧 include include qdebug intmain int argc,char argv 如何編譯這個程式呢?我們知道,構建乙個c 程式 無非是編譯 包括編譯預處理 鏈結 這幾步。對這個程式來說呢,也就是,指定 標頭檔案路徑 qtdir include 庫檔案qtcore...

Linux標頭檔案 C C 標頭檔案

linux標頭檔案 c c 標頭檔案。linux常用標頭檔案如下 posix標準定義的標頭檔案 目錄項 檔案控制 檔名匹配型別 路徑名模式匹配型別 組檔案 網路資料庫操作 口令檔案 正規表示式 tar歸檔值 終端i o 符號常量 檔案時間 字元擴充套件型別 internet定義 套接字本地介面 in...

c 學習筆記 標頭檔案預處理

類的定義一般放在標頭檔案中,但因為在乙個給定的原始檔中,乙個類只能被定義一次 如果在多個檔案中定義乙個類,那麼每個檔案中的定義必須是完全相同的 為了避免含有類的定義的標頭檔案被多次包含,造成類被重複定義 常見錯誤就是link 2001 我們可以在類的定義的標頭檔案中使用標頭檔案預處理變數 例如 if...