c++字符前面的L和_T

news/2023/6/9 19:24:41

c++字符前面的L和_T
字符串前面加L表示该字符串是Unicode字符串。
_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。
以下是别人的总结:
一、在字符串前加一个L作用:
如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。
strlen(“asd”) = 3;
strlen(L"asd") = 6;
二、 _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式
如果你定义了UNICODE,那么_T宏会把字符串前面加一个L。这时 _T(“ABCD”) 相当于 L"ABCD" ,这是宽字符串。
如果没有定义,那么_T宏不会在字符串前面加那个L,_T(“ABCD”) 就等价于 “ABCD”
三、TEXT,_TEXT 和_T 一样的
如下面三语句:
TCHAR szStr1[] = TEXT(“str1”);
char szStr2[] = “str2”;
WCHAR szStr3[] = L(“str3”);
那么第一句话在定义了UNICODE时会解释为第三句话,没有定义时就等于第二句话。
但二句话无论是否定义了UNICODE都是生成一个ANSI字符串,而第三句话总是生成UNICODE字符串。
为了程序的可移植性,建议都用第一种表示方法。但在某些情况下,某个字符必须为ANSI或UNICODE,那就用后两种方法。
别人的总结2:
你要确定你需要的字符串是宽字符还是窄字符。_T(“”)是说如果你定义了UNICODE 那么就是L"“,没有定义就是”";以下情况用_T()比较好,其他情况最好别用:
1,用THCAR,LPTSTR,LPCTSTR等tchar数据类型的时候
2,用_tprintf之类的_t版本运行时函数时候
3,像下面这样有w和a版本的api,调用CreateFile的时候
#ifdef UNICODE
#define CreateFile CreateFileW
#else
#define CreateFile CreateFileA
#endif // !UNICODE

参考链接:https://www.cnblogs.com/wliangde/p/4073659.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4566332.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

第3章:混仿高级特性

备份与还原仿真状态 当混仿已经跑了很长时间,却必须中断时(如即将断电),或者当混仿初始化序列很长时,可以将仿真数据备份,下次可从当前状态还原。 只有使用VCS AMS或FineSim VCS工具时可以备份和还原仿真…

频率域滤波matlab函数,频率域滤波(2) - osc_t0xmr011的个人空间 - OSCHINA - 中文开源技术交流社区...

一、频率域滤波的基本步骤:1)使用函数tofloat把输入图像转换为浮点图像(im2double函数也可以)[f,revertclass] tofloat(f)2)使用函数paddedsize获得填充参数PQ paddedsize(size(f));3)得到有填充图像的傅里叶变换F fft2(f,PQ(1),PQ(2));4)生成一个大小为PQ(1)*PQ…

Vue+Echarts制作单页面的XMR矿池监控台

练手用的&#xff0c;数据源是从矿池官网拿的json&#xff0c;页面源代码存个档<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…

TokenGazer评级丨Monero:XMR缓慢发行损害矿工利益,去中心化治理带来社区分裂风险...

2019年2月21日&#xff0c;TokenGazer发布了区块链项目Monero评级报告。当前TokenGazer往期的项目评级报告、深度研究报告、加密货币月报等均已收录在官方网站&#xff1a;www.tokengazer.com。1估值、评分、指标趋势1.1 基本信息1.2 综合评分&#xff1a;4.5分1.3 指标趋势&am…

2_XMR的技术概念

Monero 的技术点 参考文档: https://monerodocs.org/https://github.com/monerobook/monerobook/blob/master/chapters/5.mdwallet_rpc 文档(不是最新): https://web.getmonero.org/resources/developer-guides/wallet-rpc.htmldaemon_rpc文档(不是最新): https://web.getmon…

python json操作_Python-读入json文件并进行解析及json基本操作

原博文 2018-06-06 15:14 − import json def resolveJson(path): file open(path, "rb") fileJson json.load(file) field fileJson["field"] futures file...026248 相关推荐 2019-12-05 20:03 − 如何使用 Python 语言来编码和解码 JSON 对象。 JSO…

【0CTF/TCTF2021预选】[Misc] pypypypy Sloth writeup python字节码编程

文章目录题目审计代码主要思路获取属性获取常量其他特性解题阻碍get_flag小结参考文章题目 nc 进去之后会返回python代码 题目环境 3.8.11 (default, Jun 29 2021, 19:54:56) [GCC 8.3.0] import sys from pathlib import Path from types import CodeTypesrc Path(__file__)…

人生苦短我用Python 一 :python 之 axis 的理解

最近再学习python经常会遇到一个参数axis&#xff0c;常常会被不同的取值搞得有点头大&#xff0c;于是查找几个知乎大佬文章&#xff0c;揣摩了揣摩&#xff0c;加上上自己的理解整理一下。 一般来说数据会有1维&#xff0c;2维&#xff0c;3维&#xff0c;4维&#xff0c;&am…