Visual Studio2019在編譯時的警告C6385、C6386從..中讀取的數據無效: 可讀大小為..個字節,但可能讀取了..個字節 以及 寫入到..時緩沖區溢出: 可寫大小為..個字節,但可能寫入了..個字節


在Visual Studio2019中,在進行編譯時出現了這樣的警告:

1. C6385:從..中讀取的數據無效: 可讀大小為..個字節,但可能讀取了..個字節;

2. C6386:從..中寫入到..時緩沖區溢出: 可寫大小為..個字節,但可能寫入了..個字節

微軟在默認情況下強制對C和C++代碼強制使用SAL分析,除了以上兩種警告外,還有其他的一些誤報(false positive)。

解決方法

#pragma   warning(push)是保存當前的編譯器警告狀態;
#pragma   warning(pop)是恢復原先的警告狀態。
例如:

#pragma warning(push)
#pragma warning(disable:6385)
#pragma warning(disable:6386)
/*Source Code*/
#pragma   warning(pop)  

這樣在編譯Source Code部分的代碼時,6385、6386警告將不會出現。

 

也可以不加#pragma   warning(push)和#pragma   warning(pop),這樣#pragma warning(disable:6385)#pragma warning(disable:6386)將在全局生效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM