在C+中使用字符“$”或“@”有问题吗+;密码? 我想知道在C++代码中使用字符>代码> $>代码>或代码> @ /代码>,是否可能被认为是不好的做法,比如在宏中。

在C+中使用字符“$”或“@”有问题吗+;密码? 我想知道在C++代码中使用字符>代码> $>代码>或代码> @ /代码>,是否可能被认为是不好的做法,比如在宏中。,c++,C++,我在任何地方都没有见过这些,即使它们在ASCII表中,就像 例如,#字符 事实上,我很想把我的宏命名为“$SomeMacro()”,而不是老生常谈的“SOME_MACRO()”,它在gcc、clang和msvc中编译得很好。无论如何这都不是一个好主意,但是如果你来自JavaScript(例如著名的jQuery的$)或其他语言之类的世界,如果你想变得花哨,你确实可以使用很多东西 例如,$在许多编译器中用作扩展: int $() { return 42; } 您还可以使用其他Unicode

我在任何地方都没有见过这些,即使它们在ASCII表中,就像 例如,
#
字符


事实上,我很想把我的宏命名为“$SomeMacro()”,而不是老生常谈的“SOME_MACRO()”,它在gcc、clang和msvc中编译得很好。

无论如何这都不是一个好主意,但是如果你来自JavaScript(例如著名的jQuery的
$
)或其他语言之类的世界,如果你想变得花哨,你确实可以使用很多东西

例如,
$
在许多编译器中用作扩展:

int $() {
    return 42;
}
您还可以使用其他Unicode字符:

int ᚁᚂᚃ() {
    return 42;
}
而且,您甚至可以使用表情符号:


int使用它们做什么?你试过编译它吗?欢迎使用堆栈溢出。请花点时间浏览并参考中的材料,了解您可以在此处询问什么以及如何提问。发布一篇文章特别重要。如果您的意思是在变量名称中使用它们,则不可以。变量只能使用下划线、字母和数字。如果将“IsIt bad practice”更改为“is it allowed”,则可以提出一个不错的问题。问题是,糟糕的做法是基于意见的,而主要基于意见的问题在SOofftopic被认为是离题的:最好不要首先使用宏。在现代C++中,只有宏的价值,只有很少的事情是不能做到的,值得注意的是,在某些情况下,并非所有的工具链都完全支持这些标识符。我知道至少有一个链接器可能会吐出来emoji@Mgetz我可以想象……:)我只在底部找到了这个列表,它有一些非常奇怪的符号,现在我有点困惑什么是真正允许的,什么不是非常奇特:)但是它是用来在宏中使用的,我编辑了我的question@Acorn刚在godbolt上测试过:GCC:emoji被拒绝,MSVC:compiles,Clang:compiles,ICC:compiles