2012-06-17 40 views

回答

8

通用字符名稱看起來像\uFFFD\U0010FFFD。這是一種在源代碼中編寫字符的方法,其中源代碼編碼不包含該字符。

C++指定不在基本源字符集中的字符在第一階段的轉換中轉換爲通用字符名稱。這是因爲通用字符名稱和字符不在基本源字符集中,而是在源字符集中得到相同的處理。

AS-如果規則意味着,它把寫成通用字符名稱相同地,在源字面上出現擴展字符擴展字符的實現實際上是不需要做這個通用字符名翻譯,只要。

+0

他們都是unicode編碼的字符嗎?所以中文字符例如轉換爲unicodefirst? – unj2

+0

是的,通用字符名稱使用Unicode短名稱(數字Unicode與每個字符關聯)。例如,Unicode指定字符'⻰'爲簡短名稱U + 2EF0,因此該字符的通用字符名稱爲'\ u2EF0'或'\ U00002EF0' – bames53

+0

因此,我編寫了一個程序來將C++源文件轉換爲無但通用字符名稱。 G ++首先給出了關於在標識符中使用通用字符的一堆錯誤,然後用'error:'#include \ 012int main(){\ 012 \ 011printf(「Hello,world!\ n」); \ 012 \ 011return 0; \ 012} \ 012'不會命名一個類型'。所以我要麼*是*通用字符名稱和它們代表的實際字符之間的區別,要麼是GNU C++中的錯誤。 –