单字符 和 宽字符

复制代码
#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

相关推荐
No0d1es6 小时前
电子学会青少年软件编程(C/C++)5级等级考试真题试卷(2024年6月)
c语言·c++·算法·青少年编程·电子学会·五级
DjangoJason8 小时前
C++ 仿RabbitMQ实现消息队列项目
开发语言·c++·rabbitmq
weixin_3077791310 小时前
VS Code配置MinGW64编译GNU 科学库 (GSL)
开发语言·c++·vscode·算法
蒋星熠12 小时前
C++零拷贝网络编程实战:从理论到生产环境的性能优化之路
网络·c++·人工智能·深度学习·性能优化·系统架构
CHANG_THE_WORLD12 小时前
# C++ 中的 `string_view` 和 `span`:现代安全视图指南
开发语言·c++
雨落倾城夏未凉12 小时前
9.c++new申请二维数组
c++·后端
雨落倾城夏未凉13 小时前
8.被free回收的内存是立即返还给操作系统吗?为什么?
c++·后端
雨落倾城夏未凉13 小时前
6.new和malloc的区别
c++·后端
郝学胜-神的一滴13 小时前
深入理解QFlags:Qt中的位标志管理工具
开发语言·c++·qt·程序人生
INS_KF13 小时前
【C++知识杂记2】free和delete区别
c++·笔记·学习