C++错误:C4996

版本:Visual Studio 2015 

错误C4996 'ctime': This function or variable may be unsafe. Consider using ctime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

翻译:此函数或变量可能不安全。请考虑使用safe_version相反。若要禁用弃用,请使用 _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。 选择“确定” 进行保存,然后重新生成项目。 


此外,还可以手动更改标准警告带编译器选项 /w 的 C4996。 例如,将警告 C4996 到 4 级:

参考:https://msdn.microsoft.com/zh-cn/library/aa985974.aspx ,https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=ZH-CN&k=k(C4996)&rd=true

你可能感兴趣的:(C++基础)