TCHAR与_TCHAR有哪些不同?
2个回答
展开全部
char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了消除各编译器的差别,重新定义了一些数据类型,你提到了另外几个类型都是这样。CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。如果当前编译方式为ANSI(默认)方式,TCHAR等价于CHAR,如果为Unicode方式,TCHAR等价于WCHAR。LPCSTR 相当于CONST CHAR * 和LPSTR 相当于CHAR *。
更多追问追答
追问
你是说,TCHAR与_TCHAR没有任何不同?
追答
如果你编译一个程序为ANSI方式,_T实际不起任何作用。而如果编译一个程序为UNICODE方式,则编译器会把字符串以UNICODE方式保存。
展开全部
#ifdef _UNICODE
/*
* Include <wchar.h> for wchar_t and WEOF if _UNICODE.
*/
#include <wchar.h>
/*
* Use TCHAR instead of char or wchar_t. It will be appropriately translated
* if _UNICODE is correctly defined (or not).
*/
#ifndef _TCHAR_DEFINED
#ifndef RC_INVOKED
typedef wchar_t TCHAR;
typedef wchar_t _TCHAR;
#endif /* Not RC_INVOKED */
#define _TCHAR_DEFINED
#endif
#else /* Not _UNICODE */
/*
* TCHAR, the type you should use instead of char.
*/
#ifndef _TCHAR_DEFINED
#ifndef RC_INVOKED
typedef char TCHAR;
typedef char _TCHAR;
#endif
#define _TCHAR_DEFINED
#endif
//这是tchar.h头文件里面的内容, 从这里面可以看出,TCHAR 和 _THCAR 完全是一样的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询