1. 程式人生 > >常用的#pragma指令

常用的#pragma指令

1.#pragma message(“訊息文字”)

當編譯器遇到這條指令時就在編譯輸出視窗中將訊息文字打印出來。

2.另一個使用得比較多的pragma 引數是code_seg。格式如:
#pragma code_seg( ["section-name"[,"section-class"] ] )
它能夠設定程式中函式程式碼存放的程式碼段,當我們開發驅動程式的時候就會使用到它。

3.#pragma resource "*.dfm"表示把*.dfm 檔案中的資源加入工程。*.dfm 中包括窗體
外觀的定義。

4.#pragma warning( disable : 4507 34; once : 4385; error : 164 )
等價於:
#pragma warning(disable:4507 34) // 不顯示4507 和34 號警告資訊
#pragma warning(once:4385) // 4385 號警告資訊僅報告一次
#pragma warning(error:164) // 把164 號警告資訊作為一個錯誤。
同時這個pragma warning 也支援如下格式:
#pragma warning( push [ ,n ] )
#pragma warning( pop )
這裡n 代表一個警告等級(1---4)。
#pragma warning( push )儲存所有警告資訊的現有的警告狀態。
#pragma warning( push, n)儲存所有警告資訊的現有的警告狀態,並且把全域性警告
等級設定為n。
#pragma warning( pop )向棧中彈出最後一個警告資訊,在入棧和出棧之間所作的
一切改動取消。例如:
#pragma warning( push )
#pragma warning( disable : 4705 )

5.#pragma comment(...)
該指令將一個註釋記錄放入一個物件檔案或可執行檔案中。
常用的lib 關鍵字,可以幫我們連入一個庫檔案。比如:
#pragma comment(lib, "user32.lib")
該指令用來將user32.lib 庫檔案加入到本工程中。
linker:將一個連結選項放入目標檔案中,你可以使用這個指令來代替由命令列傳入的或
者在開發環境中設定的連結選項,你可以指定/include 選項來強制包含某個物件,例如:
#pragma comment(linker, "/include:__mySymbol")

6.使用指令#pragma pack (n),編譯器將按照n 個位元組對齊。
使用指令#pragma pack (),編譯器將取消自定義位元組對齊方式。
在#pragma pack (n)和#pragma pack ()之間的程式碼按n 個位元組對齊。