#error指令使預處理器發出一條錯誤訊息,該訊息包含指令中的文字。這條指令的目的就是在程式崩潰之前能夠給出一定的資訊。
三 #include
命令#i nclude使編譯程式將另一原始檔嵌入帶有#include的原始檔,被讀入的原始檔必須用雙引號或尖括號括起來。例如:
#include"stdio.h"或者#include
這兩行**均使用c編譯程式讀入並編譯用於處理磁碟檔案庫的子程式。
將檔案嵌入#i nclude命令中的檔案內是可行的,這種方式稱為巢狀的嵌入檔案,巢狀層次依賴於具體實現。
如果顯式路徑名為檔案識別符號的一部分,則僅在那些子目錄中搜尋被嵌入檔案。否則,如果檔名用雙引號括起來,則首先檢索當前工作目錄。如果未發現檔案,則在命令列中說明的所有目錄中搜尋。如果仍未發現檔案,則搜尋實現時定義的標準目錄。
如果沒有顯式路徑名且檔名被尖括號括起來,則首先在編譯命令列中的目錄內檢索。如果檔案沒找到,則檢索標準目錄,不檢索當前工作目錄。
四條件編譯命令
有幾個命令可對程式源**的各部分有選擇地進行編譯,該過程稱為條件編譯。商業軟體公司廣泛應用條件編譯來提供和維護某一程式的許多顧客版本。
#if、#else,#elif及#endif
#if的一般含義是如果#if後面的常量表示式為true,則編譯它與#endif之間的**,否則跳過這些**。命令#endif標識乙個#if塊的結束。
#if constant-expression
statement sequence
#endif
eg:#define max 91
#include
using namespace std;
int main()
跟在#if後面的表示式在編譯時求值,因此它必須僅含常量及已定義過的識別符號,不可使用變數。表示式不許含有操作符sizeof(sizeof也是編譯時求值)。
#else命令的功能有點象c語言中的else;#else建立另一選擇(在#if失敗的情況下)。注意,#else屬於#if塊。
#elif命令意義與else if 相同,它形成乙個if else-if階梯狀語句,可進行多種編譯選擇。#elif 後跟乙個常量表示式。如果表示式為true,則編譯其後的**塊,不對其它#elif表示式進行測試。否則,順序測試下一塊。
#if expression
statement sequence
#elif expression1
statement sequence
#endif
預處理命令
和 操作符是和 define 巨集使用的.使用 使在 後的首個引數返回為乙個帶引號的字串.例如,命令 define to string s s將會使編譯器把以下命令 cout to string hello world endl 理解為 cout hello world endl 使用 鏈結 前後的...
預處理命令
我們可以在c源程式中插入傳給編譯程式的各中指令,這些指令被稱為預處理器指令,它們擴充了程式設計的環境。現把常用的預處理命令總結如下 1.預處理程式 按照ansi標準的定義,預處理程式應該處理以下指令 if ifdef ifndef else elif endif define undef line ...
預處理命令
ansi c標準規定可以在c源程式中加入一些 預處理命令 來改進程式設計環境,提高程式設計效率。這些預處理指令都是由ansi c統一規定的,但是它並不是c語言本身的組成部分,不能直接對其進行編譯。c語言和其它高階程式語言的乙個重要區別就是可以使用預處理指令和它的預處理功能。預處理是指由預處理程式負責...