[C++, CPP 教學 教程 教材 Tutorial] 基本程式架構 - 前置處理指令(Preprocessor Directives)
YehYeh\'s Notepad yehyeh@gmail.com 

[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可以明確指定變數型態
    • 包含檔案:將標頭檔包含到程式內
      • 引入名為iostream的標頭檔到程式內
        #include <iostream>
        
    • 條件編譯:若有定義巨集,則編譯區塊內的程式碼
      • 寫程式時常加入一些除錯用資訊,但程式正式發行時要再一行一行把這些除錯資訊拿掉相當麻煩。
      • 發行正式版時只要不定義debug巨集,這些除錯資訊就不會被編譯
        #ifdef debug    //如果有定義debug,就執行程式碼區塊內的程式
            程式碼區塊(除錯的資訊)
        #endif
        

名稱空間(Namespace)

程式開發常需引用函式庫,若引用的函式庫和開發的程式有相同名稱的函式時該如區別?
如果將有關聯的物件、函式、變數...等宣告在相同的名稱空間,開發時就可以使用範疇解析運算子::(Scope Resolution Operator)來標明函式或物件是屬於那個名稱空間,或使用名稱空間指令(Using Directives)來標明式檔內使用的名稱空間,編譯器便能找出正確的函式。