有以下方法初始化空值。
TCHAR x[5] = {'\0'};
TCHAR x[5] = _T("\0");
我想知道哪一个是正确的?
答案 0 :(得分:4)
使用前者。 _T(...)
会根据项目设置生成一个char
或wchar
的emtpty字符串。如果使用多字节字符集 [a] ,则后面的示例(没有_T(...)
将无法编译..
_T
的一个可能定义是:
#if defined(_UNICODE)
# define _T(x) L ##x
#else
# define _T(x) x
#endif
从this comment引用以完成此答案:
除非您的目标是Windows 95,否则最佳解决方案是不 完全使用
TCHAR
。根据您的不同,选择char
或wchar_t
打算存储
问题发生变化后,以下是我的评论:
TCHAR x[5] = _T("\0");
)方便从字符串初始化并提供空终止。但在这种情况下两者都是等价的。char
到wchar_t
可以进行隐式转换。因此两个声明都是等效的,选择一个你觉得更具可读性的声明。
[a]对于MSVC:项目设置>配置属性>项目默认值>字符集