Preprocessor

預(yù)處理命令(主要有三種)

  • 宏定義
  • 文件包含
  • 條件編譯
  1. 宏定義
    如:
#define PI 3.1415926

由于 C++已增加了 const 語句定義常量,因此#define 實(shí)際上已不多用。
還可以用#define命令定義帶參數(shù)的宏定義。其定義的一般形式為

#define 宏命(參數(shù)表) 字符串
如
#define S(a, b) a*b  //定義宏 S(句型面積),a、b為宏的參數(shù)
使用的形式如下:
area = S(3, 2);
賦值語句展開為
area = 3 * 2;

由于 C++增加了內(nèi)置函數(shù)(inline),比用帶參數(shù)的宏定義更方便,因此比較不用#define,定義宏了,主要用于條件編譯中。

  1. 文件包含
    所謂文件包含處理是指一個(gè)源文件可以將另一個(gè)源文件的全部內(nèi)容包含進(jìn)來,即將另外的文件包含到本文件之中。如:
#include "file2.cpp"

在編譯預(yù)處理時(shí),將 file2.cpp 文件中的內(nèi)容拷貝并插入到#include "file2.cpp"命令處,即文件 file2.cpp 的全部內(nèi)容被包含到 file1.cpp 中。

文件包含可以節(jié)省很多重復(fù)勞動(dòng)。如,可以將一些固定的常量組成一個(gè)文件,各人可以用#include 命令將文件包含到自己的源文件中。如要修改一些常數(shù),不必修改每個(gè)程序,只需修改一個(gè)文件即可。但要注意,被包含的文件經(jīng)過修改后,凡包含此文件的所有文件都要重新編譯。
頭文件一般包含以下內(nèi)容:

  • 類型的聲明
  • 函數(shù)聲明
  • 內(nèi)置函數(shù)的定義
  • 宏定義
  • 全局變量定義
  • 外部變量聲明, 如 extern
  • 包含其他頭文件
include 命令的兩種形式
  • < > 尖括號(hào)
    如: #include <cmath>
  • " " 雙引號(hào)
    如:#include "cmath"

兩者的區(qū)別是:用尖括號(hào)時(shí),系統(tǒng)到系統(tǒng)目錄中尋找要包含的文件,如果找不到,編譯系統(tǒng)就給出錯(cuò)誤信息。所謂系統(tǒng)目錄是指存放 C++系統(tǒng)的目錄。一般情況下,庫函數(shù)和C++編譯系統(tǒng)是存放在同一目錄中的。
有時(shí)被包含的文件不在系統(tǒng)目錄中,此時(shí)用雙引號(hào)的形式,指出文件路徑和文件名,如:#include "c:\ tan\C++\file1.c",它的作用是:要求編譯系統(tǒng)從 C 盤上的目錄\tan\C++中尋找 file1.c文件,如果找不到就到系統(tǒng)目錄中找,如果還找不到,則不再尋找,給出出錯(cuò)信息。
如果沒有給出絕對(duì)路徑,如#include "file2.c",則默認(rèn)指用戶當(dāng)前目錄中的文件。系統(tǒng)先在用戶當(dāng)前目錄中尋找要包含的文件,若找不到,再按標(biāo)準(zhǔn)方式查找。
對(duì)于系統(tǒng)提供的文件,可以用兩種方式都能找到,尖括號(hào)形式更直截了當(dāng),效率更高。

  1. 條件編譯
    希望程序中某一部分只在滿足一定條件時(shí)才進(jìn)行編譯,如果不滿足條件,就不編譯這段內(nèi)容。
    (1)
 #ifdef 標(biāo)識(shí)符
        程序段1
 #else  
        程序段2
 #endif

(2)

 #ifndef 標(biāo)識(shí)符
        程序段1
 #else  
        程序段2
 #endif

(3)

 #if 表達(dá)式
        程序段1
 #else  
        程序段2
 #endif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容