zoukankan      html  css  js  c++  java
  • 读书笔记1 Unicode

    读书笔记1 --Unicode

    • 宽节节
    宽字节不需要Unicode.Unicode是一种可能的宽字符编码.ANSI C也支持多字节字符集.
    C中的宽字符基于wchar_t数据类型 typedef unsigned short wchar_t  (无符号短整型,16位宽)
    wchar_t * p=L"Hello";
    static wchar_t a[]=L"Hello";
    L代表 long

    wchar_t c=L'A'; 

    这里的L通常是不必要的.编译器无论如何会对该字符进行零扩充
    计算字符串长度时strlen(const char *) 对应的宽字节版本函数为wcslen(const wchar_t *)
    • 维护单一源码

    一系列的宏皆为维护既能按ASCII编译又能按Unicode编译的单一代码文件.

    TCHAR.H头文件定义如下宏:
    如果定义了 _UNICODE标识符
    typedef wchar_t TCHAR
    反之
    typedef char TCHAR
    #define __T(x) L##x
    #define _T(x) __T(x)

    #define _TEXT(x) __T(x)

    用_T(x)宏来定义字符串文字,根据_UNICODE的标识符,将字符串解释为宽字符的组合或8位的字符
    如c运行库中计算字符串长度时strlen(const char *),wcslen(const wchar_t *)
    windows字符串函数为:
    int lstrlen(      
        LPCTSTR lpString );
    LPCTSTR的定义:
    winbase.h中
    #ifdef  UNICODE                     // r_winnt
    #ifndef _TCHAR_DEFINED
    typedef WCHAR TCHAR, *PTCHAR;
    typedef WCHAR TBYTE , *PTBYTE ;
    #define _TCHAR_DEFINED
    #endif /* !_TCHAR_DEFINED */
    typedef LPWCH LPTCH, PTCH;
    typedef LPWSTR PTSTR, LPTSTR;
    typedef LPCWSTR PCTSTR, LPCTSTR;
    typedef LPUWSTR PUTSTR, LPUTSTR;
    typedef LPCUWSTR PCUTSTR, LPCUTSTR;
    typedef LPWSTR LP;
    #define __TEXT(quote) L##quote      // r_winnt
    #else   /* UNICODE */               // r_winnt
    #ifndef _TCHAR_DEFINED
    typedef char TCHAR, *PTCHAR;
    typedef unsigned char TBYTE , *PTBYTE ;
    #define _TCHAR_DEFINED
    #endif /* !_TCHAR_DEFINED */
    typedef LPCH LPTCH, PTCH;
    typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR;
    typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;
    #define __TEXT(quote) quote         // r_winnt
    #endif /* UNICODE */                // r_winnt
    #define TEXT(quote) __TEXT(quote)   // r_winnt
  • 相关阅读:
    R语言对苏格兰独立民意调查的Meta分析
    R语言中固定与随机效应Meta分析
    Comet OJ
    luoguP6070 [MdOI2020] Decrease 贪心+二维差分
    luoguP6071 [MdOI2020] Treequery DFS序+主席树
    AT2064 [AGC005F] Many Easy Problems 容斥+NTT
    BZOJ 4650: [Noi2016]优秀的拆分 后缀自动机+启发式合并+线段树合并
    BZOJ 1498: [NOI2006]神奇的口袋 性质分析+高精度
    BZOJ 1819: [JSOI]Word Query电子字典 搜索+trie
    robotframework 随机选中下拉框中的值
  • 原文地址:https://www.cnblogs.com/solo/p/1487892.html
Copyright © 2011-2022 走看看