在 C/C++ 中使用$
字符作为标识符的一部分是否安全?像这样,
int $a = 10;
struct $b;
class $c;
void $d();
在 C/C++ 中使用$
字符作为标识符的一部分是否安全?像这样,
int $a = 10;
struct $b;
class $c;
void $d();
不; 它是某些编译器中的非标准扩展。
不能。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
这不是标准的,只有 Microsoft Visual Studio(我知道)甚至允许在标识符中使用“$”字符。
因此,如果您希望您的代码可移植(或对其他人可读),我会拒绝。