Visual Studio2019在編譯時的警告C6385、C6386從..中讀取的資料無效: 可讀大小為..個位元組,但可能讀取了..個位元組 以及 寫入到..時緩衝區溢位: 可寫大小為..個位元組,但可能寫入了..個位元組
阿新 • • 發佈:2020-10-18
在Visual Studio2019中,在進行編譯時出現了這樣的警告:
1. C6385:從..中讀取的資料無效: 可讀大小為..個位元組,但可能讀取了..個位元組;
2. C6386:從..中寫入到..時緩衝區溢位: 可寫大小為..個位元組,但可能寫入了..個位元組
微軟在預設情況下強制對C和C++程式碼強制使用SAL分析,除了以上兩種警告外,還有其他的一些誤報(false positive)。
解決方法:
#pragmawarning(push)是儲存當前的編譯器警告狀態;
#pragmawarning(pop)是恢復原先的警告狀態。
例如:
#pragma warning(push) #pragmawarning(disable:6385) #pragma warning(disable:6386) /*Source Code*/ #pragma warning(pop)
這樣在編譯Source Code部分的程式碼時,6385、6386警告將不會出現。
也可以不加#pragmawarning(push)和#pragmawarning(pop),這樣#pragma warning(disable:6385)和#pragma warning(disable:6386)將在全域性生效。