VC++中的_T

来源:互联网 发布:人工智能包含哪些专业 编辑:程序博客网 时间:2024/05/22 06:57

主  题:  请问在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  
---------------------------------------------------------------------------------------------------------------------------------------------

为了程序的国际化,通用化。
 

原创粉丝点击