字符透明编程自总结

来源:互联网 发布:公务员面试 知乎 编辑:程序博客网 时间:2024/06/05 16:36

对字符透明编程

  •    字符定义
  •    字符串字面值表示
  •    字符串处理函数

// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

VC++ 对字符透明编程

  •       字符定义

       在crtdefs.h头文件中如下定义:

        typedef unsigned short wchar_t;

 

        在 tchar.h头文件如下定义:

// _UNICODE 版#ifndef__TCHAR_DEFINEDtypedefwchar_t_TCHAR;typedefwchar_t_TSCHAR;typedefwchar_t_TUCHAR;typedefwchar_t_TXCHAR;#define  __TCHAR_DEFINED#endiftypedefwchar_tTCHAR;//非_UNICODE 版#ifndef__TCHAR_DEFINEDtypedefchar                 _TCHAR;typedefsigned char          _TSCHAR;typedefunsigned char        _TUCHAR;typedefchar                 _TXCHAR;#define__TCHAR_DEFINED#endiftypedefcharTCHAR;

 

// 字符定义总结如下: 自适应非UNICODE                 UNICODE_TCHARchar                    wchar_t_TSCHARsigned char             wchar_t_TUCHARunsigned char           wchar_t_TXCHARchar                    wchar_tTCHARchar                    wchar_t


 

  •          字符串字面值表示

      非UNICODE   字符串表示:    " "

      UNICODE       字符串表示: L" "

    // ---------------------------------------------------------

      在tchar.h头文件如下定义:

// _UNICODE 版#define__T(x)L ## x//非_UNICODE 版#define__T(x)x// -----------------------------------------#define _T(x)            __T(x)#define  _TEXT(x)         __T(x)
// 字符串字面值表示:// 非UNICODE:      " "// UNICODE  :     L" "// 字符串字面值表示,总结如下: 自适应        非UNICODE           UNICODE__T(x)            x               L ## x_T(x)             x               L ## x_TEXT(x)          x               L ## x

 


  •         字符串处理函数

        自适应                 ANSI                        UNICODE

        _tcs开头              str开头                    wcs开头

// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

// --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 windows api 字符透明编程

 

                  头文件 winnt.h如下定义:

                  typedef     char                          CHAR;

                  typedef      unsigned short     WCHAR;

01.//   02.// Neutral ANSI/UNICODE types and macros   03.//   04.  05.#ifdef     UNICODE                       // 以下是Unicode相关定义   06.  07.#ifndef    _TCHAR_DEFINED   08.typedef    WCHAR   TCHAR,   *PTCHAR;     // 定义基本通用类型   09.#define    _TCHAR_DEFINED   10.#endif     /* !_TCHAR_DEFINED */   11.  12.typede    LPWSTR   LPTCH,   PTCH;        // 定义各种通用字符串指针   13.typedef   LPWSTR   PTSTR,   LPTSTR;  14.typedef   LPCWSTR  LPCTSTR;  15.typedef   LPWSTR   LP;                   // 奇怪,为什么要定义它?   16.  17.#define   __TEXT(quote)     L##quote     // 定义字符串常量宏   18.  19.#else     /* UNICODE */                  // 以下是ANSI相关定义   20.  21.#ifndef    _TCHAR_DEFINED   22.typedef    char    TCHAR,   *PTCHAR;     // 定义基本通用类型   23.#define    _TCHAR_DEFINED   24.#endif     /* !_TCHAR_DEFINED */   25.  26.typedef    LPSTR   LPTCH,   PTCH;        // 定义各种通用字符串指针   27.typedef    LPSTR   PTSTR,   LPTSTR;  28.typedef    LPCSTR  LPCTSTR;  29.#define    __TEXT(quote)    quote        // 定义字符串常量宏   30.  31.#endif     /* UNICODE */      32.  33.#define    TEXT(quote)      __TEXT(quote)// 定义另一个字符串常量宏


  现总结如下:

解释                           自适应                  非UNICODE           UNICODE字符定义                       TCHAR                CHAR               WCHAR字符指针                       PTCHAR               CHAR *             WCHAR *字符串指针                     LPTCH & PTCH         LPSTR & PSTR       LPWSTR & PWSTR字符串指针                     LPTSTR & PTSTR       LPSTR & PSTR       LPWSTR & PWSTR静态字符串指针                 LPCTSTR & PCTSTR     LPCSTR & PCSTR     LPCWSTR & PCWSTR字符串表示                     __TEXT(quote)        quote              L ## quote字符串表示                     TEXT(quote)          quote              L ## quote

原创粉丝点击