[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 的定義。
• 就好像同一本參考書對同一個名詞可能有兩個定義,你可以用章節來區分。
如:二維平面上的點與三維空間上的點。
• 同一個標頭檔對同一個名詞可能有兩個定義,則用命名空間來區分。
留言
張貼留言