[C++] 巨集指令、標頭檔、命名空間

巨集指令











•  巨集指令 (macro) 或 前處理器指令 (preprocessor directive)

•  # (pound sign, number  sign, hash...) 開頭,後接一個指令
   如:#include , #define , #ifdef ,  # ifndef ,  # endif

•  代表前處理器要做的動作

 

標頭檔








 



•  標頭檔像一本某科的參考書,裡面對於該科會用到的辭彙與用法 (知識) 有很詳細的解釋。

•  iostream意思是輸入/輸出串流 (I/O stream)

•  cout , cin , << , >> , endl ... 都 在 iostream裡有定義 (直接拿來用就好)

•  #include < iostream > 代表前處理器會拿 iostream 這本參考書裡的內容原封不動直接替換掉這行, 稱作巨集替代 (macro substitution)

 

命名空間

 








 •  剛剛說的 cout , cin , << , >> , endl 是定義在標頭檔 iostream 裡的叫作 std 的命名空間。

 •  命名空間的設計是為了避免在同個或不同標頭檔同樣出現某個詞彙。

 •  例如在同個標頭檔,可能有兩種不同的 cout 的定義。

 •  就好像同一本參考書對同一個名詞可能有兩個定義,你可以用章節來區分。
     如:二維平面上的點與三維空間上的點。

 •  同一個標頭檔對同一個名詞可能有兩個定義,則用命名空間來區分。

留言

熱門文章