預處理器(6)其他預編譯指令

2021-06-19 23:00:10 字數 1153 閱讀 9966

#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...