windows编程中的单字符和宽字符使用 总结

本文详细介绍了C/C++中字符类型的使用,包括单字符char、宽字符wchar_t及它们的不同应用场景。同时,文章还探讨了如何通过预处理器指令适配不同字符类型,并解释了TCHAR、LPSTR、LPWSTR等宏定义在不同编译条件下的含义。

    最近在工作中对单字符和宽字符的使用有点模糊不清了,所以周末把最常用的总结了下。

 

    1. 单字符 char

        使用  char *p="Hello" ;

 

        宽字符  wchar_t

        使用  wchar_t  *wp=L"Hello“;   

        注意使用wchar_t 的时候字符串前面要加上L

 

 

   2.如果包含了头文件#include<TCHAR.H>,那么可以用TCHAR,_T,_TEXT来定义统一的字符串

     

      使用  TCHAR  *tp=_T("Hello");

       或者 TCHAR  *tp=_TEXT("Hello");

 

 

       如果#define  _UNICODE  ,那么 tp表示一个wchar_t *,否则tp表示char*

    

   3.  如果包含了头文件#include<WINNT.H>或者#include<WINDEF.H>或者

        #include<WINDOWS.H>,那么

 

        CHAR 等价于 char

        WCHAR 等价于 wchar_t

        TCHAR  跟是否 #define  UNICODE  有关,如果定义了UNICODE  ,那么

        TCHAR  等价于 WCHAR 也就是wchar_t,否则

        TCHAR  等价于 CHAR  ,也就是char

       

 

 

        这时候定义统一的字符串可以这么定义:

        TCHAR   *tp=TEXT("Hello");

 

        如果#define  UNICODE  ,那么 tp表示一个wchar_t *,否则tp表示char*

 

 

 

   4.  关于LPSTR,LPWSTR,LPTSTR 的定义

       这几个也是在WINNT.H里面定义的

 

       LPSTR 是指向char 的指针,即 char *

       LPWSTR  是指向 wchar_t的指针,即 wchar_t *

 

       如果 #define  UNICODE  ,那么

       LPTSTR    即 wchar_t *,否则

       LPTSTR    即 char*

 

 

 

 

      如果这三个中间加有字符"C",表示常量字符串。

 

 

      

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值