单字符 和 宽字符

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

相关推荐
神仙别闹41 分钟前
基于C++ WinPcap 的网络抓包软件
网络·c++·php
whitelbwwww1 小时前
c++运行RKNN
开发语言·c++
布莱克6051 小时前
栈(Stack)详解:定义、作用、应用场景及与队列的区别(附 C/C++ 代码)
c语言·开发语言·c++·
zmzb01031 小时前
C++课后习题训练记录Day203
开发语言·c++
Dream Cosmos2 小时前
Linux 多线程——线程互斥:从抢票问题到 Mutex 底层原理
linux·c++
Titan20242 小时前
HTTPS基础知识梳理
服务器·网络·c++·网络协议·学习·http·https
艾莉丝努力练剑2 小时前
【AI大模型接入SDK】SSE协议
c++·学习·面试·大模型·sdk
郝学胜_神的一滴3 小时前
C++11 工程级应用 06:自己造一个类似Python的Range迭代器
c++·后端
一只QAQ3 小时前
c++项目
java·c++·算法
Chester_19993 小时前
CSP202206C.角色授权
开发语言·数据结构·c++·蓝桥杯