#pragma warning 指令集

#pragma warning 指令集

該指令允許有選擇性的修改編譯器的警告消息的行爲 
指令格式如下: 
#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list…] 
#pragma warning( push[ ,n ] ) 
#pragma warning( pop ) 
主要用到的警告表示有如下幾個: 
once:只顯示一次(警告/錯誤等)消息 
default:重置編譯器的警告行爲到默認狀態 
1,2,3,4:四個警告級別 
disable:禁止指定的警告信息 
error:將指定的警告信息作爲錯誤報告 
如果大家對上面的解釋不是很理解,可以參考一下下面的例子及說明

#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 ) 
#pragma warning( disable : 4706 ) 
#pragma warning( disable : 4707 ) 
#pragma warning( pop ) 
在這段代碼的最後,重新保存所有的警告信息(包括4705,4706和4707) 
在使用標準C++進行編程的時候經常會得到很多的警告信息,而這些警告信息都是不必要的提示, 
所以我們可以使用#pragma warning(disable:4786)來禁止該類型的警告 
在vc中使用ADO的時候也會得到不必要的警告信息,這個時候我們可以通過 
#pragma warning(disable:4146)來消除該類型的警告信息 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章