【发布时间】:2011-12-17 02:30:17
【问题描述】:
我偶然发现了一些像这样的 C++ 代码:
int $T$S;
首先我认为它是某种 PHP 代码或错误粘贴在那里的东西,但它编译和运行良好(在 MSVC 2008 上)。
哪些字符对 C++ 中的变量有效?还有其他奇怪的字符可以使用吗?
【问题讨论】:
-
“可以”!=“应该”。在变量名中使用
$是该语言的扩展,可能不适用于其他编译器(可能 GCC 除外,它对每个语言扩展都有一个标志)。 -
我什至会说它使用奇怪的字符堵塞了变量名,所以不,我不想使用它,只是想知道它:-)
-
在标识符中使用
$在VMS 上相当普遍,其中许多系统库例程的名称类似于SYS$SOMETHING。 g++ 支持将其作为扩展,但如果您指定-pedantic,则会发出警告。 -
@KeithThompson:至于现在 2015-11-17
gcc 4.9.3甚至没有使用-pedantic开关发出警告。在此期间会有所改变吗? -
@AlBundy:C 标准允许在标识符中使用“其他实现定义的字符”。即使使用
-pedantic,也不需要警告(尽管我个人希望有一种简单的方法来警告此类事情,而无需为每个功能指定单独的选项)。
标签: c++ variables visual-c++ identifier variable-names