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

posted @ 2020-10-16 21:22  Guardner_Bunny  阅读(13080)  评论(1编辑  收藏  举报