c++ - _itoa 和 itoa 有什么区别?

标签 c++ c visual-studio itoa

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/

相关文章:

c++ - 从属于同一类的对象内部访问类变量

c - 在 C 中复制两个相邻字节的最快方法是什么?

c++ - 逐行阅读 C 和 C++?

c++ - 诊断神秘的 WM_PAINT 消息

c# - 无需使用 Visual Studio 2010 中的设计模式即可找到事件的正确参数

c++ - g++ 的自动测试器/调试器?

c++ - 使用指针和 rand() C++ 时遇到一个有趣的错误

c++ - 如何只使用一个 boost 库/文件?

c++ - 将 char[] 转换为 char*

c - 为什么 Valgrind 会提示这段代码?