Visual Studio 对我使用 itoa()
大喊大叫说要改用 _itoa()
?
在我看来它们是相同的功能。给了什么?
最佳答案
C 运行时库实现不应该引入标准中没有的名称,除非它们遵循特定的命名约定(例如以下划线开头)。微软编译器的早期版本并没有特别严格地遵循这条规则,但随着时间的推移,微软一直在朝着使它们的实现更符合标准的方向努力。因此,他们过去提供的函数会侵入用户的命名空间,他们一直在使用为编译器实现保留的名称来实现,并且一直在弃用旧名称。
如果定义了 _CRT_NONSTDC_NO_WARNINGS
,MS 编译器将不会提示 itoa()
函数被弃用。但它仍然会提示它不安全(您必须定义 _CRT_SECURE_NO_WARNINGS
以消除该警告)。或者使用更安全的函数版本 (_itoa_s()
) 为函数提供目标缓冲区大小
_itoa()
和 itoa()
都解析为库中完全相同的函数,直到相同的地址 - 除了名称之外没有区别。
关于c++ - _itoa 和 itoa 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1586749/