pragma常見的幾個用法

2021-08-02 10:26:16 字數 1618 閱讀 1403

#pragma  region

#pragma  endregion    //這個組合可以使用中間的**摺疊,便於全域性檢視**,分析**模組還是比較有幫助。在vs2015中測試用效。其他編譯器中未測試

#pragma once      

//在標頭檔案的最開始加入這條指令就能夠保證標頭檔案被編譯一次,在vc中有效,標準用法建議使用#ifndef  ***_h   #define ***_h   #endif ,在其他編譯器中都有效

#pragma message(「訊息文字」)

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

。。。。下述這些用法摘至網上,暫未測試

(3)#pragma hdrstop表示預編譯標頭檔案到此為止,後面的標頭檔案不進行預編譯。

(4)#pragma warning( disable : 4000 40; once : 3000; error : 2000 )

等價於:

#pragma warning(disable:4000 40) // 不顯示4507和34號警告資訊

#pragma warning(once:3000) // 4385號警告資訊僅報告一次

#pragma warning(error:2000) // 把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 : 1111 )

#pragma warning( disable : 2222 )

#pragma warning( disable : 3333 )

//.......

#pragma warning( pop )

在這段**的最後,重新儲存所有的警告資訊(包括1111,2222,3333)。

(5)通過#pragma pack(n)改變c編譯器的位元組對齊方式

在c語言中,結構是一種復合資料型別,其構成元素既可以是基本資料型別(如int、

long、float等)的變數,也可以是一些復合資料型別(如陣列、結構、聯合等)的

資料單元。在結構中,編譯器為結構的每個成員按其自然對界(alignment)條件分

配空間。各個成員按照它們被宣告的順序在記憶體中順序儲存,第乙個成員的位址和

整個結構的位址相同。

例如,下面的結構各成員空間分配情況:

struct test

;整個結構所佔據空間為12位元組。

如果#pragma pack(1)

struct test

;#pragma pack()

只佔8個位元組

pragma的各種用法

1.pragma message msg 編譯輸出視窗中將訊息文字列印出來。2.pragma code seg sectionname section class 在程式中放置 段 3.pragma once 編譯單次 4.pragma hdrstop 表示預編譯標頭檔案到此為止 5.pragma ...

彙總 pragma用法

現彙總 pragma用法如下 1.pragma message pragma message 訊息文字 當編譯器遇到這條指令時,就在編譯輸出視窗中將訊息文字列印出來。2.pragma code seg pragma code seg section name section class 它能夠設定程...

pragma用法小記

作為乙個初學cc2530晶元的菜鳥,看到很多實驗例程中都有乙個從未見過的語法 pragma,網上查閱了下,順便做下小小的總結 英語學的不怎麼樣,開始把它看成了 program故百思不得其解,查後才知道錯的有多離譜 pragma p r m n.編譯指示 雜注。pragma 指令是乙個預處理指令,作用...