1. 程式人生 > >關閉Visual Studio編譯器警告C4996

關閉Visual Studio編譯器警告C4996

使用VS2005以及後續版本編譯strcpy、sprintf等函式時,會出現如下C4996警告。

warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
5>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\string.h(105) : 參見“strcpy”的宣告
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
5>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(371) : 參見“sprintf”的宣告

 對於此類警告,正規的做法是移植時使用諸如strcpy_s、sprintf_s函式替代strcpy、sprintf函式,消除警告。

然而,對於某些特殊的程式碼使用strcpy_s函式替代可能會有困難。或許,我們想暫時排除編譯器的騷擾(眼不見為淨嘛^.^),開展更為急迫的工作。因此,下面的方法可能會有用武之地。

 

方法一

程式碼中新增#pragma warning預處理指令,修改編譯器對C4996警告訊息的行為 。

關閉全部C4996警告。

#pragma warning(disable:4996)        //關閉全部

 只顯示一次警告。

#pragma warning(once:4996)           //只顯示一次警告

 

方法二

開啟工程配置屬性頁後,點選配置屬性>C/C++>前處理器,增加預處理定義_CRT_SECURE_NO_WARNINGS。