版本: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 中定义此宏,请打开项目的 “属性页”对话框。
此外,还可以手动更改标准警告带编译器选项 /w<l><n> 的 C4996。 例如,将警告 C4996 到 4 级:展开“配置属性” 、“C/C++” 、“预处理器” 。 在“预处理器定义” 中,添加 _CRT_NONSTDC_NO_WARNINGS。 选择“确定” 进行保存,然后重新生成项目。
参考: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