2011-10-19 55 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++中字符串文字的常量問題

相關問題