VC++中L和_T是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++中L和_T是啥?相关的知识,希望对你有一定的参考价值。

MessageBox(L"hello, world");
MessageBox(_T"hello, world");
我知道L和_T的作用把后面的字符串转换成 unicode。
我想知道L和_T在VC中叫什么?

  字符串前面加L表示该字符串是Unicode字符串。
  _T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual

  C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。

  因此,当你在VS2005/VS2008下进行写C++(MFC程序时)最好应用_T;而在VS2010等下直接用L吧!
参考技术A L"hello, world" 这个字符串保存的是wchar的
_T"hello, world" 如果工程定义的UNICDE则这个字符串是按wchar方式保存的,如果没有定义则是按char方式保存的本回答被提问者和网友采纳
参考技术B 回答

1、L是升,T是吨。2、L是liter,L在这里就是容积升的单位。指的是汽车发动机的排气量。1.8L的意思是指这款发动机有1.8升的排气量。 排量后面没有T而标注L的一般是自然吸气发动机。3、T代表的是涡轮增压(Turbo)的缩写,如果在轿车尾部看到Turbo或者T,即表明该车采用的发动机是涡轮增压发动机。

参考技术C long

text

VC++ _T()宏学习

_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。
因此,Visual 

 _T和L的区别在于,L不管你是以什么方式编译,一律以UNICODE方式保存。

_T是一个适配的宏,
  当
  #ifdef _UNICODE的时候
  _T就是L
  没有#ifdef _UNICODE的时候
  _T就是ANSI的。

代码如下,

输出没什么区别;

 

代码如下,

 

输出如下;

 

代码如下,

 

输出如下;

 

代码如下,

 

输出如下;

 

 有时间再继续;

以上是关于VC++中L和_T是啥?的主要内容,如果未能解决你的问题,请参考以下文章

VS2010中类似与MessageBox()的函数是啥?

Unicode _T和L和_TXET

[VC] 显示32个系统定义颜色 (COLOR_***)

关于VC++的Winmain函数(WINAPI是啥?)

在 VC++14 中使用 std::basic_stringstream<char16_t> 时出错

编程中VB跟VC指的是啥 请详细说清楚...