iaj*_*jnr 0 c++ msdn tr24731 visual-studio visual-c++
对于使用/不使用wcs/_w/_mbs前缀定义的函数的差异,我有点困惑.
例如:
fopen函数打开由filename指定的文件._wfopen是fopen的宽字符版本; _wfopen的参数是宽字符串.否则,_wfopen和fopen表现相同.
我只是怀疑是否有任何平台依赖于与添加"_w"前缀相关联的窗口.
wcscpy和_mbscpy分别是strcpy的宽字符和多字节字符版本.
如果"wcs"或"_mbs"的添加是依赖于平台的,则再次存在疑问.
编辑:
WideCharToMultiByte不是C运行时函数,它是Windows API,因此它取决于平台
它是非标准的,但在C11附件K中标准化.
这些wcs*功能wcscpy是C标准库的一部分.该_wfopen功能和其他_w*功能的扩展,因为是多字节字符串函数一样_mbscpy.
在大多数情况下,具有前导下划线的Visual C++ C运行时(CRT)函数是扩展; 没有前导下划线的函数是C标准库的一部分.
有两个主要的例外情况,其中扩展可能没有前导下划线:
有几个扩展函数,使用下划线前缀声明,具有前缀别名,用于向后源兼容.这些别名已弃用,如果您尝试使用它们,您将获得可抑制的弃用警告(C4996).
_s某些C标准库函数有一些固定的安全替代函数,例如scanf_s.这些是默认声明的,但可以通过将宏定义__STDC_WANT_SECURE_LIB__为值0 来抑制它们的声明.
(这些功能实际上已添加到可选附件K中的C11中,但请注意,C标准中指定的内容与Visual C++实现的内容之间存在一些差异.这些差异是由于历史事故造成的.)
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |