#include#error 陣列未分配空間!
int main()
編譯器會生成如下錯誤資訊:
main.cpp(4): fatal error c1189: #error : 陣列未分配空間!
********** 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 **********
通過#error指令我們可以自定義錯誤資訊。(我感覺這個用處不大)
#line用來修改__line__和__file__的值。
#include//#line 100 "m.c"
int main()
#line的指令格式如下:
#line number "filename"
number是當前行號,filename是當前的檔名。
上面的程式會輸出:
d:\使用者目錄\documents\visual studio 2010\projects\preprocessor\preprocessor\main.cpp67
如果把//#line 100 "m.c"的注釋去掉,執行結果就變成了:
d:\使用者目錄\documents\visual studio 2010\projects\preprocessor\preprocessor\m.c
103104
這就達到了,在預編譯中修改行號和檔案名字的目的。
3.#pragma
這條指令受編譯器限制。
不同編譯器對其解釋不同。
下面是乙個簡單的應用。
#include#pragma pack(1)
struct data
;int main()
上面的程式用來設定結構體中變數方式,
語法:#pragma pack(n) 設定變數以n位元組對齊方式
如果不新增#pragma pack(1)這條語句的話,struct data會按預設對齊方式以12位元組儲存。
新增之後,struct data會按照乙個位元組的方式對齊,則以6個位元組儲存。1(char)+4(int)+1(char)=6
其他預編譯指令
error指令使預處理器發出一條錯誤訊息,然後停止執行預處理。error 一般形式為 error info,如 error mfc requires c compilation。line指令用於重新設定當前由 file 和 line 巨集指定的原始檔名字和行號。line一般形式為 line numb...
C 預處理器指令
c 預處理器指令是在編譯時呼叫的。預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。1.定義符號和取消符號定義的預處理指令 define 和 undef 預處理指令都以 號開頭並...
unity C 預處理器指令
預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。樣式 if unity editor unity iphone unity android unity wp8 unity bl...