我刚刚将我的IDE更改为来自MSVC++ 6的MS Visual Studio 2005,并且我收到了很多弃用警告.我没有忽略警告,而是开始将它们改为_s等价物.但是,我发现这些只是微软的实现.
我在某处读到他们正在推动这些成为标准的一部分.是吗?
使用这些_s函数是个好主意吗?或者我应该使用其他东西?
谢谢.
这些*_s()
功能不是C标准的一部分,但有一个待定的"技术报告"建议添加它们(我不确定TR中的例程是否与Microsoft完全相同,或者它们是否相似) .
TR 24731-1:C库的扩展第一部分:边界检查接口:
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1225.pdf
如果要继续使用旧函数,可以通过定义宏_CRT_SECURE_NO_WARNINGS
(_CRT_SECURE_NO_DEPRECATE
可能仍然支持)来保持弃用警告的安静.