【问题标题】:Nordic characters in c++ variable names? [duplicate]c ++变量名中的北欧字符? [复制]
【发布时间】:2019-03-20 14:26:52
【问题描述】:

是否可以在 C++ 中使用类名和变量名中的北欧字母字符进行编程? (特别是:æ、ø 和 å)。

示例:

auto føø = 2;

我正在使用 GCC > 6,它似乎不支持它。还有其他支持这些字符的编译器吗?

(仅供参考:我已经拒绝了这个,但是空了)。

【问题讨论】:

标签: c++ c++11 visual-c++ g++ clang++


【解决方案1】:

根据this

变量命名规则

  1. 变量名不能是 C++ 关键字。例如int 不能是 变量名,因为它是 C++ 关键字。
  2. 变量名称必须以字母开头(A-Z 和 a-z)或 下划线 (_) 符号。例如var、X、_name 等有效 变量名,但 1a、$age 等是无效的变量名。
  3. 变量名称可以有字母(A-Z 和 a-z)、下划线 (_)、 数字 (0-9) 但不能有其他符号,例如 %、&、@ 等。对于 例如a_01, findSum 是有效的变量名称,但 name&, calc% 不是 在 C++ 中允许。

所以回答你的问题:

是否有可能使用 C++ 中的字符进行编程? 类名和变量名中的北欧字母? (特别是:æ、ø 和 å)。

它不是可移植的,因为标准不允许这样做;当然,无论如何,这取决于各个编译器是否允许。通常起作用的是使用宏,如下所示:

#define føø my_foo

然后再做

auto føø = 2;

【讨论】:

  • 该源代码是否专门适用于 C++ 11?至少目前的草案有不同的规则(例如,all characters are significant)。
  • 它没有指定版本。我删除了那个重要的角色部分,因为老实说,它也让我感到惊讶。经过一番搜索,似乎真正的限制实际上是“至少 32 个字符”,但无论如何,大多数编译器都要求整个名称是有意义的。多亏了你,我才知道为什么很多旧的 C 程序都有如此可怕和混乱的变量名——当时的限制是 6 个重要字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
相关资源
最近更新 更多