主 题: 请问在vc++中经常出现的_T有什么作用,它是什么意思?
======================================================================
请问在vc++中经常出现的_T有什么作用,它是什么意思?
回复人: crazy_lazy_pig(疯狂懒猪) ( 信誉:100 2002-11-19 23:35:12Z 得分:20
---------------------------------------------------------------------------------------------------------------------------------------------
它是一个把ASCII字符转化为UNICODE字符的宏。这有利于程序的通用性
回复人: qing_li73(Vincent Lee) ( 信誉:120 2002-11-20 02:08:21Z 得分:20
---------------------------------------------------------------------------------------------------------------------------------------------Data Type Mappings
These data-type mappings are defined in TCHAR.H and depend on whether the constant _UNICODE or _MBCS has been defined in your program.
For related information, see Using TCHAR.H Data Types with _MBCS Code.
Generic-Text Data Type Mappings
Generic-Text
Data Type Name SBCS (_UNICODE,
_MBCS Not
Defined)
_MBCS
Defined
_UNICODE
Defined
_TCHAR char char wchar_t
_TINT int int wint_t
_TSCHAR signed char signed char wchar_t
_TUCHAR unsigned char unsigned char wchar_t
_TXCHAR char unsigned char wchar_t
_T or _TEXT No effect (removed by preprocessor) No effect (removed by preprocessor) L (converts following character or string to its Unicode counterpart)
See Also Generic-text mappings, Constants and global variable mappings, Routine mappings, A sample generic-text program, Using generic-text mappings
回复人: kingcom_xu(我就是无聊,你咬我啊,操!!!) ( 信誉:122 2002-11-20 08:12:06Z 得分:20
---------------------------------------------------------------------------------------------------------------------------------------------
字符串(literal string)前面的大写字母L,用于告诉编译器该字符串应该作为U n i c o d e字符
串来编译。当编译器将字符串置于程序的数据部分中时,它在每个字符之间分散插入零字节。
这种变更带来的问题是,现在只有当定义了_ U N I C O D E时,程序才能成功地进行编译。我们需
要另一个宏,以便有选择地在字符串的前面加上大写字母L。这项工作由_ T E X T宏来完成,
_ T E X T宏也在T C h a r. h文件中做了定义。如果定义了_ U N I C O D E,那么_ T E X T定义为下面的形
式:#define _TEXT(x) L ## x
如果没有定义_ U N I C O D E,_ T E X T将定义为#define _TEXT(x) x
使用该宏,可以改写上面这行代码,这样,无论是否定义了_ U N I C O D E宏,它都能够正确
地进行编译。
from windows核心编程
回复人: flounder(比目鱼) ( 信誉:100 2002-11-20 08:17:11Z 得分:0
---------------------------------------------------------------------------------------------------------------------------------------------
被作为unicode编译,有利于程序的多语言
回复人: ruihuahan(飞不起来的笨鸟) ( 信誉:100 2002-11-20 09:17:39Z 得分:20
---------------------------------------------------------------------------------------------------------------------------------------------
这是一个条件编译宏,如果unicode编译它为L,否则为空。
#ifdef _UNICODE
#define _T L
#else
#define _T
#endif
回复人: netxray(倦意的笑容) ( 信誉:99 2002-11-20 09:35:48Z 得分:20
---------------------------------------------------------------------------------------------------------------------------------------------
嗯,是条件编译宏
如果强制转换为UNICODE,应该是L
回复人: bqt(周扒皮) ( 信誉:100 2002-11-20 09:36:12Z 得分:0
---------------------------------------------------------------------------------------------------------------------------------------------
为了程序的国际化,通用化。