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++中的错误。 –