使用`$`作为C / C ++中的标识符是否安全?

时间:2011-01-22 19:28:10

标签: c++ c special-characters identifier

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

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

void $d();

3 个答案:

答案 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(我知道)甚至允许标识符中的'$'字符。

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