編譯器:warning CXXXX
VC中#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)來消除該類型的警告資訊
連接器: warning LNKXXXX