2011-10-19 21 views
0

我确定这个问题之前已经被问过了,但我无法找到搜索到的文本。如果任何人都可以解释他们,请将我推荐给一篇文章,或者给我正确的搜索查询,我将不胜感激。_T(“...”)和_RT(“...”)宏之间有什么区别?

谢谢。

+0

鉴于以下划线和大写字母开头的标识符是为实现保留的,我不鼓励使用它们,并且猜测编译器手册是寻找解释的地方。 – pmr

+0

@pmr:'_T(')是标准的Microsoft获取宽/短字符串文字的方法,取决于UNICODE/DBCS编译器的定义 – sehe

+2

你在哪里找到这个“_RT”宏?我没有看到那个。这是来自WinRT还是什么? –

回答

1

这只是一个预感,但是查看字符串文字的Wikipedia C++11 Page,并将它与我们知道_T宏,它是有道理的,_RT宏可能是基于_T基于原始字符串文字。

你将不得不看看宏本身,看看它做了什么。由于_T宏如果您使用的是unicode,因此会预先输入L,我的猜测是_RT会始终加上R,如果是Unicode,L也会加上。

所以_T用于正常的字符串文字处理,使它们的Unicode(wchar_t)或没有,_RT用于制造原始字符串字面量并使其Unicode或没有。

+0

这使得很多意义IMO – sehe

0

我不知道_RT()(似乎google agrees

我首先想到的 “只读” 的文字。嗯,这实际上有点多余,但IIRC标准已经变得更加严格,关于C++中字符串文字的常量问题

相关问题