關於ifndef的認識

2021-07-13 08:56:42 字數 800 閱讀 9195

今天看了一段程式,裡面有 #ifndef ... 這個識別符號。

#ifndef 一般是和 #endif 結合使用的,一般的,當乙個檔案包含幾個標頭檔案時,而且每個標頭檔案都可能定義了相同的巨集,使用#ifndef可以防止對該巨集重複定義。

#ifndef x 

//先測試x是否被巨集定義過,#ifndef的反義詞是#ifdef #ifndef通常定義以前從未定義過的常量。沒錯是常量!!

#endif 

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

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

條件指示符#ifndef  

最主要目的是防止標頭檔案的重複包含和編譯。

const 與 #define的比較 

c++ 語言可以用const來定義常量,也可以用 #define來定義常量。但是前者比後者有更多的優點: 

(1)       const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查。而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換可能會產生意料不到的錯誤(邊際效應)。 

(2)       有些整合化的除錯工具可以對const常量進行除錯,但是不能對巨集常量進行調

關於DDD的認識

引用自http www.jdon.com jivejdon forum messagelist.shtml?thread 32093 count 15 start 30 什麼是dao,repository?在repository情況下,dao其實是多餘的,repository可以完全替代dao。以j...

關於粒度的認識

構建資料倉儲時,如何描述事實表的單個行?答案就是粒度。粒度定義意味著對各事實錶行實際代表的內容給出明確的說明,傳遞了同事實表度量值相聯絡的細節所達到的程度方面的資訊。實際應用中我們一般會這樣定義粒度,比如 顧客購物券上掃瞄裝置一次拾取的分列項內容 醫生開出的單據專案內容 銀行帳號的月快照 手機使用者...

關於指標的認識

在寫圖的鄰接矩陣轉化為圖的鄰接表儲存時,碰到了乙個問題,為每個節點建立好vnode之後,每個節點的arcnode無法正確建立。在除錯的過程中,發現程式有新建節點的操作,但是沒有與之前的鍊錶指標關聯,這個問題本質上是線性表的建立問題。尋找程式的錯誤,發現首先是新建操作的p節點沒有回到起始位置,也就是沒...