在 C/C++ 中使用 `$` 作为标识符安全吗?

发布于 2024-10-13 18:16:55 字数 127 浏览 5 评论 0原文

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

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

void $d();

Is it safe to use $ character as part of identifier in C/C++?
Like this,

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

void $d();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

请恋爱 2024-10-20 18:16:55

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

No; it is a non-standard extension in some compilers.

爱格式化 2024-10-20 18:16:55

不可以。C 标准仅保证使用大小写英文字母、数字、_ 以及使用 \u (hex-quad)指定的 Unicode 代码点\U(十六进制四元组)(十六进制四元组)(有一些例外)。特定的编译器可能允许其他字符作为扩展名;然而,这是非常不可移植的。 (ISO/IEC 9899:1999 (E) 6.4.2.1, 6.4.3) 进一步注意,Unicode 代码点方法在标识符中基本上是无用的,尽管严格来说,它是允许的(在 C99 中),因为它仍然出现作为编辑器中的文字 \uXXXX

No. The C standard only guarantees the use of uppercase and lowercase English letters, digits, _, and Unicode codepoints specified using \u (hex-quad) or \U (hex-quad) (hex-quad) (with a few exceptions). Specific compilers may allow other characters as an extension; however this is highly nonportable. (ISO/IEC 9899:1999 (E) 6.4.2.1, 6.4.3) Further note that the Unicode codepoint method is basically useless in identifiers, even though it is, strictly speaking, permitted (in C99), as it still shows up as a literal \uXXXX in your editor.

微凉徒眸意 2024-10-20 18:16:55

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

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

This is not standard and only Microsoft Visual Studio (that I know of) even allows the '$' character in identifiers.

So if you ever want your code to be portable (or readable to others), I'd say no.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文