在C / C ++中使用$
字符作为标识符的一部分是否安全?
像这样,
int $a = 10;
struct $b;
class $c;
void $d();
答案 0 :(得分:5)
没有;它是某些编译器中的非标准扩展。
答案 1 :(得分:4)
没有。 C标准仅保证使用使用_
或\u (hex-quad)
指定的大写和小写英文字母,数字,\U (hex-quad) (hex-quad)
和Unicode代码点(除少数例外)。特定编译器可以允许其他字符作为扩展名;然而,这是非常不便携的。 (ISO / IEC 9899:1999(E)6.4.2.1,6.4.3)进一步注意,Unicode码点方法在标识符中基本上是无用的,尽管严格来说,它是允许的(在C99中),因为它仍然显示出来作为编辑器中的文字\uXXXX
。
答案 2 :(得分:1)
这不是标准的,只有Microsoft Visual Studio(我知道)甚至允许标识符中的'$'字符。
因此,如果您希望您的代码可移植(或可供他人阅读),我会拒绝。