Visual c++ 为什么函数中wtoi前面有下划线?哪个ansi版本是atoi?

Visual c++ 为什么函数中wtoi前面有下划线?哪个ansi版本是atoi?,visual-c++,wchar,Visual C++,Wchar,你好!这让我困惑了好久 很久以前,只有ansi版本是atoi 现在(也是很久以前)有了广泛的字符版本 但是为什么宽字符版本在wtoi之前有一个uderline(“'''') 谁能告诉我为什么? 谢谢:)Microsoft提供了功能\u atoi\u l、\u wtoi、\u wtoi\u l作为特定于供应商的扩展。它们不是标准的C/C++库函数。它们有许多特定于供应商的函数,这些函数的名称派生自标准的C/C++库函数。在大多数情况下,以前导下划线开头的函数都是实现添加项;它们不是C标准库的一部分

你好!这让我困惑了好久

很久以前,只有ansi版本是atoi

现在(也是很久以前)有了广泛的字符版本

但是为什么宽字符版本在wtoi之前有一个uderline(“'''')

谁能告诉我为什么?
谢谢:)

Microsoft提供了功能
\u atoi\u l、\u wtoi、\u wtoi\u l
作为特定于供应商的扩展。它们不是标准的C/C++库函数。它们有许多特定于供应商的函数,这些函数的名称派生自标准的C/C++库函数。

在大多数情况下,以前导下划线开头的函数都是实现添加项;它们不是C标准库的一部分。(有例外,例如,代码< x退出>代码>是C标准库的一部分,虽然它还没有在VisualC++实现中实现。)用一个领先的下划线开头的标识符是这样的,所以它们用于非标准扩展,以避免与用户定义的名称冲突。 至于C标准库中没有
wtoi
的原因:到C标准库中添加了时间范围的字符函数时,可以理解
atoi
接口存在缺陷,因为


不要使用
atoi
\wtoi
。相反,最好使用
strtol
wcstol
函数,这两个函数都是C标准库的一部分。(对于其他类型,还有其他类似命名的转换函数,例如,
strtof
wcstof
转换为
float
,以及
strtoull
wcstoull
转换为
无符号长时间

,因为微软把它放在那里了——没有其他原因。这是他们的功能,所以他们可以随心所欲;
wtoi()
\wtoi()
都不是标准化的,除非事实上是由Microsoft制定的。为什么标准C/C++库不提供widechar版本?@NorSDNorSD问得好。我不知道答案。