6
A
回答
8
您必須指定編譯,你也可以選擇使用爲\ uXXXX或\ uXXXXXXXX對Unicode當-fextended-identifiers
標誌(ATLEAST在GCC它的Unicode)的
標識符以g(可變/類名等)++不能是UTF-8/UTF-16或任何編碼, 的他們必須是:
identifier:
nondigit
identifier nondigit
identifier digit
非數字是
nondigit: one of
universalcharactername
_ a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
和李海rsalcharactername是
universalcharactername:
\UXXXXXXXX
\uXXXX
因此,如果你的源文件保存爲UTF-8,你不能有像例如一個變量:
int høyde = 10;
它必須這樣寫:
int h\u00F8yde = 10;
(imo會擊敗整個目的 - 所以只需堅持az)
4
cpp prep的一行補丁rocessor允許UTF-8輸入。對於GCC細節在
https://www.raspberrypi.org/forums/viewtopic.php?p=802657
然而給出的,因爲預處理器被共享時,相同的補丁應爲克++正常工作。特別是,該補丁需要,作爲GCC-5.2是
diff -cNr gcc-5.2.0/libcpp/charset.c gcc-5.2.0-ejo/libcpp/charset.c
*** gcc-5.2.0/libcpp/charset.c Mon Jan 5 04:33:28 2015
--- gcc-5.2.0-ejo/libcpp/charset.c Wed Aug 12 14:34:23 2015
***************
*** 1711,1717 ****
struct _cpp_strbuf to;
unsigned char *buffer;
! input_cset = init_iconv_desc (pfile, SOURCE_CHARSET, input_charset);
if (input_cset.func == convert_no_conversion)
{
to.text = input;
--- 1711,1717 ----
struct _cpp_strbuf to;
unsigned char *buffer;
! input_cset = init_iconv_desc (pfile, "C99", input_charset);
if (input_cset.func == convert_no_conversion)
{
to.text = input;
注意,對於以上補丁的工作,需要安裝支持C99轉換最近的iconv的版本。輸入iconv --list來驗證,否則,你可以安裝一個新版本的iconv和gcc,如上面的鏈接所述。更改配置命令爲
$ ../gcc-5.2.0/configure -v --disable-multilib \
--with-libiconv-prefix=/usr/local/gcc-5.2 \
--prefix=/usr/local/gcc-5.2 \
--enable-languages="c,c++"
如果您正在爲x86構建並且還想包含C++編譯器。
相關問題
- 1. Java Unicode變量名
- 2. 鐺Unicode字符變量名
- 3. JavaScript變量名ISO 8859-1或Unicode
- 4. linux g ++的Unicode問題
- 5. 使用unicode箭頭字符的變量名或枚舉案例
- 6. llvm-clang;包含unicode字符的函數/變量名稱
- 7. 變量g可能尚未初始化
- 8. G ++ 4.4「未初始化」變量
- 9. C++和g ++如何處理unicode?
- 10. 將變量名賦值給變量名
- 11. 變量名稱變量
- 12. 用變量命名變量
- 13. 添加變量名變量
- 14. 環境變量,變量名
- 15. 變量變量名稱
- 16. 爲什麼這些unicode變量名與-fextended-identifiers一起使用? «,»和≠
- 17. Python:將unicode變量轉換爲字符串變量
- 18. 如何將變量值變成變量名?
- 19. C++變量命名
- 20. 如何Unicode編碼字符變量轉換爲Unicode字符python2
- 21. 將Ansible變量從Unicode轉換爲ASCII
- 22. 在Python中定義unicode變量
- 23. Shell:在變量中打印unicode字
- 24. 將Unicode分配給wchar_t變量
- 25. 由另一個變量引用變量名,或從變量確定變量名
- 26. 從變量名
- 27. 在變量名
- 28. 類名變量
- 29. 在變量名
- 30. 「::」 變量名C++
g ++只是不符合標準的wrt。標識符中的字符。但我不知道任何*符合的編譯器。我的印象是,大多數編譯器將標識符字符限制爲英文A ... Z和下劃線加$符號,這在兩種方式上是錯誤的:不允許標準附錄E中指定的大量Unicode字符(I'已在http://pastie.org/3110152上列出),並允許標準不允許的$。總之,標準和現有的做法是非常不一致的。也許用C++ 11 ... ;-)乾杯&hth。, – 2012-01-02 03:33:33
@ Cheersandhth.-Alf嘗試叮鐺:) – 2013-07-24 07:24:02