在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)將在全局生效。