单字符 和 宽字符

复制代码
#define PI   3.14
//产生新类型
typedef 3.14 PI

单字符,一个字节存储,宽字符,二个字节存储。

sizeof(L"abc")=8
size("abc")=4

typedef unsigned short wchar_t;
char

typedef  wchar_t WCHAR;
typedef  char CHAR;

WCHAR* p = L"Hello";
CHAR* = "Hello";

typedef  const CHAR* CSTR;
typedef  const WCHAR* CWSTR;
typedef  const CHAR* LPCSTR;
LPCSTR = PCSTR

单字符版本
宽字符版本
#ifdef _UNICODE
#define TEXT(x) L##x => L"x"
#else
#define TEXT(x) x
#endif

#define _T(x) TEXT(x)

SetWindowText(TEXT("QQ"))
SetWindowText(_T("QQ"))

#ifdef _UNICODE
#define PTSTR PWSTR
#else
#define PTSTR PSTR
#endif

#ifdef _UNICODE
#define PCTSTR PCWSTR
#else
#define PCTSTR PCSTR
#endif

#ifdef _UNICODE
#define _tWinMain wWinMain
#else
#define _tWinMain WinMain
#endif

工程属性设置中,编码使用Unicode,则使用宽字符,PCTSTR => const wchar_t*

使用多字节,PCTSTR => const char*


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

相关推荐
ZZHow10241 小时前
Ascend C算子开发(高级)笔记
c++·人工智能·笔记·深度学习·华为云
aqiu1111112 小时前
【C++算法打怪专栏】LeetCode 217. 存在重复元素(解法总结)
c++·算法·leetcode
lojox2 小时前
深入理解 C++ STL:vector 底层实现、迭代器失效与 list 特性
开发语言·c++
微笑星河q3 小时前
C++类和对象(下)初始化列表、类型转换、static、友元、内部类、匿名对象
开发语言·c++
|_⊙3 小时前
C++ 类和对象零散知识点
开发语言·c++
xiangyun613 小时前
C++ list 模拟实现(二):const迭代器与反向迭代器,模板的黑魔法
开发语言·数据库·c++·算法·stl·list
坤坤子吖5 小时前
Linux 进程信号入门——从 Ctrl+C 到 kill
linux·开发语言·c++·笔记·学习
bnmoel5 小时前
C++ 基础入门篇(六)类和对象-第三篇:运算符重载
开发语言·c++·算法·语法·运算符重载
小七在进步6 小时前
初识C++中的模板
java·开发语言·c++
垆边人似月.6 小时前
华为题:合并区间
数据结构·c++·算法