[C++, CPP] 基本程式架構
前置處理指令(Preprocessor Directives)
- 程式碼中,以#開頭的程式稱為前置處理指令,是在編譯之前就需要處理的指令,它主要有3個功能:
- 巨集處理:定義常數或運算式,進行前置處理時將變數或運算式代換掉。
- 定義圓周率PI的值為3.14,如果後面程式有使用PI,前置處理時則替換成3.14
#define PI 3.14 //定義常數PI的值為3.1 周長 = 2 * PI * 半徑 //周長 = 2 * 3.14 * 半徑
- C++較推薦使用const關鍵字來代替這種寫法,因為const可以明確指定變數型態
- 定義圓周率PI的值為3.14,如果後面程式有使用PI,前置處理時則替換成3.14
- 包含檔案:將標頭檔包含到程式內
- 引入名為iostream的標頭檔到程式內
#include <iostream>
- 引入名為iostream的標頭檔到程式內
- 條件編譯:若有定義巨集,則編譯區塊內的程式碼
- 寫程式時常加入一些除錯用資訊,但程式正式發行時要再一行一行把這些除錯資訊拿掉相當麻煩。
- 發行正式版時只要不定義debug巨集,這些除錯資訊就不會被編譯
#ifdef debug //如果有定義debug,就執行程式碼區塊內的程式 程式碼區塊(除錯的資訊) #endif
- 巨集處理:定義常數或運算式,進行前置處理時將變數或運算式代換掉。
名稱空間(Namespace)
程式開發常需引用函式庫,若引用的函式庫和開發的程式有相同名稱的函式時該如區別?
如果將有關聯的物件、函式、變數...等宣告在相同的名稱空間,開發時就可以使用範疇解析運算子::(Scope Resolution Operator)來標明函式或物件是屬於那個名稱空間,或使用名稱空間指令(Using Directives)來標明式檔內使用的名稱空間,編譯器便能找出正確的函式。