Windows程序设计——笔记(3)[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

       TCHAR.H还用一个新的数据类型TCHAR来解决两种字符数据类型的问题。如果定义了 _UNICODE识别字,那么TCHAR就是wchar_t:
typedef    wchar_t    TCHAR ;
       否则,TCHAR就是char:
typedef char TCHAR ;
 
       现在开始讨论字串文字中的L问题。如果定义了_UNICODE识别字,那么一个称作__T的巨集就定义如下:
#define __T(x) L##x
       这是相当晦涩的语法,但合乎ANSI C标准的前置处理器规范。那一对井字号称为「粘贴符号(token paste)」,它将字母L添加到巨集引数上。因此,如果巨集引数是"Hello!",则L##x就是L"Hello!"。
       如果没有定义_UNICODE识别字,则__T巨集只简单地定义如下:
#define __T(x) x
       此外,还有两个巨集与__T定义相同:
#define _T(x) __T(x)
#define _TEXT(x) __T(x)
在Win32 console程序中使用哪个巨集,取决於您喜欢简洁还是详细。基本地,必须按下述方法在_T或_TEXT巨集内定义字串文字:
_TEXT ("Hello!")
       这样做的话,如果定义了_UNICODE,那么该串将解释为宽字符的组合,否则解释为8位元的字符字串。

本文关键:Windows程序设计——笔记(3)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top