C语言错误:C4996
2019-01-30 本文已影响0人
瓜尔佳Anthony
错误 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
解释:此函数或变量可能不安全。考虑使用scanf_s 替代。禁用警告请使用_CRT_SECURE_NO_WARNINGS。
原因:为了支持更加安全的新函数,已弃用某些 CRT 和标准 C++ 库函数和全局变量。 编译器会发出对这些函数的弃用警告,并建议首选函数。
调用任何一个潜在的不安全的方法在标准 C++ 库中的 编译器警告(等级 3)C4996。 若要禁用此警告,请定义代码中宏 _SCL_SECURE_NO_WARNINGS :
- 若要仅在特定源文件中定义此宏,请将行 #define _CRT_NONSTDC_NO_WARNINGS 添加到包括标头文件的任意行之前。
#define _SCL_SECURE_NO_WARNINGS (注意:这个define一定要在任何include之前define)
或者:使用 #pragma 警告 指令:#pragma warning(disable:4996)
- 若要在 Visual Studio 中定义此宏,请打开项目的 “属性页”对话框。
展开“配置属性” 、“C/C++” 、“预处理器” 。 在“预处理器定义” 中,添加 _CRT_NONSTDC_NO_WARNINGS。 选择“确定” 进行保存,然后重新生成项目。