0
点赞
收藏
分享

微信扫一扫

C++:error C4996解决方法

zhoulujun 2022-02-15 阅读 106

背景

使用fopen sprintf strcpy strstr 等函数,在编译c++程序时报如下错:

原因

这种是微软的警告,主要因为那些C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改写了同样功能的函数,改写了的函数进行了参数的检测,使用这些新的函数会更安全和便捷。关于这些改写的函数你不用专门去记忆,因为编译器对于每个函数在给出警告时,都会告诉你相应的安全函数,查看警告信息就可以获知,在使用时也再查看一下MSDN详细了解。

解决方法

  1. 加入 #define _CRT_SECURE_NO_WARNINGS

    项目属性->C/C+±>预处理器->预处理器定义中添加:_CRT_SECURE_NO_WARNINGS

  2. 加入 #pragma warning (disable: 4996) 忽略警告

  3. 根据提示信息,使用更加安全的函数:例如使用strcpy_s代替strcpy,fopen_s代替fopen。

推荐第三种种处理方式,这样会有检测,避免危险性

举报

相关推荐

0 条评论