2

在 C/C++ 中使用$字符作为标识符的一部分是否安全?像这样,

int $a = 10;
struct $b;
class $c;

void $d();
4

3 回答 3

5

不; 它是某些编译器中的非标准扩展。

于 2011-01-22T19:29:19.177 回答
4

不能。C 标准只保证使用大写和小写英文字母、数字、和使用or_指定的 Unicode 代码点(有少数例外)。特定的编译器可能允许其他字符作为扩展名;但是,这是高度不可移植的。(ISO/IEC 9899:1999 (E) 6.4.2.1, 6.4.3) 进一步注意,Unicode 代码点方法在标识符中基本上是无用的,即使严格来说它是允许的(在 C99 中),因为它仍然显示作为编辑器中的文字。\u (hex-quad)\U (hex-quad) (hex-quad)\uXXXX

于 2011-01-22T19:30:38.523 回答
1

这不是标准的,只有 Microsoft Visual Studio(我知道)甚至允许在标识符中使用“$”字符。

因此,如果您希望您的代码可移植(或对其他人可读),我会拒绝。

于 2011-01-22T19:30:40.953 回答