在Visual Studio或GCC中使用表情符号作为c ++中的标识符名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Visual Studio或GCC中使用表情符号作为c ++中的标识符名称相关的知识,希望对你有一定的参考价值。

传统上,我们可以在C ++中用作标识符一部分的可接受字符是第一个字符后面的_, a-z, A-Z0-9

有没有办法配置Visual Studio或GCC接受表情符号作为标识符名称(或任何其他任意unicode字符)的一部分?

int a = 2, 
答案

我们可以从Unicode/special characters in variable names in clang not allowed?看到C ++标准允许某些扩展字符集。 emoji codes似乎落入允许的范围。

据我所知,使用这个live example Visual Studio 2013支持标识符中的扩展字符,这得到了C++ Identifiers documentation的支持:

C ++规范允许使用Unicode字符进行命名

而且,Visual C ++本身也允许。不限于ASCII。

并提供指示自2005年以来允许这样做的链接。虽然bames53指出可能存在Windows限制表情符号。

另一方面,gcc似乎不支持这个,除了使用它们的Character sets文档中的转义码:

在标识符中,ASCII范围之外的字符只能使用' u'和' U'转义符指定,不能直接使用。如果使用-std = c90等选项指定严格的ISO C90一致性,或者使用-fno-extended-identifiers,则标识符中不允许使用这些转义符。

以上是关于在Visual Studio或GCC中使用表情符号作为c ++中的标识符名称的主要内容,如果未能解决你的问题,请参考以下文章

C++ 指针使用 Visual Studio 更改地址,而不是使用 OsX 中的 Xcode 或 Linux 中的 gcc

如何在 Visual Studio 代码中快速查找项目中的文件或符号?

如何使 Visual Studio C++ 2010 编译行为像 gcc/g++? (或相反亦然)

如何在 Visual Studio 中最好地使用 GCC

android studio 从默认键盘打开表情符号键盘

[Java JNI] [Windows] [Visual Studio] [DLL] [UnsatisfiedLinkError]