我们可以使用特殊字符在 C++/C 中定义变量吗
例如;
double ε,µ,β,ϰ;
如果是,如何实现这一目标?
根据CPP标准工作草案(N4713),
5.10 标识符 [lex.name]
...
标识符是任意长的字母和数字序列。标识符中的每个通用字符名应指定一个字符,该字符在 ISO 10646 中的编码属于表 2 中指定的范围之一。初始元素不应是指定其编码属于表 3 中指定的范围之一的字符的通用字符名称。
当我们查看表 3 时:
表 3 — 最初不允许的字符范围(组合字符)
0300-036F 1DC0-1DFF 20D0-20FF FE20-FE2F
您提到的符号是希腊字母,范围为U+0370
to U+03FF
扩展的希腊语集范围从U+1F0x
to U+1FFx
as per 维基百科 https://en.wikipedia.org/wiki/List_of_Unicode_characters。这两个范围都可以作为标识符的初始元素。
请注意,并非所有编译器都提供对此的支持。
海湾合作委员会 8.2 与-std=c++17
选项无法编译。
然而,Clang 7.0-std=c++17
选项编译。
Live Demo for both GCC and Clang https://godbolt.org/z/zscAA9
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)