Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么$symbol不能用作标识符的一部分? 我是一个C++新手。我在C++书中找到了以下语句:“在任何C++程序中,变量名以字母开头,只包含字母、数字和下划线。_C++_Variables_Standards - Fatal编程技术网

为什么$symbol不能用作标识符的一部分? 我是一个C++新手。我在C++书中找到了以下语句:“在任何C++程序中,变量名以字母开头,只包含字母、数字和下划线。

为什么$symbol不能用作标识符的一部分? 我是一个C++新手。我在C++书中找到了以下语句:“在任何C++程序中,变量名以字母开头,只包含字母、数字和下划线。,c++,variables,standards,C++,Variables,Standards,问题是为什么time$to$market不是变量名? 我试着编译它,但编译器没有抱怨,我使用的编译器是MinGW 32位,用于c++inQT。然而,它应该抱怨 我试图使用它,但编译器没有给出错误 即使您当前的编译器支持,也不要这样做(正如昆汀在评论中指出的)。它不在标准中,因此您的代码将无法移植到其他环境,甚至无法移植到使用不同标准的同一编译器(请尝试GCC选项-ansi,-std=c++11)。可能发生的最好情况是编译时出错,最糟糕的情况是您将追踪数小时的未定义行为。编译器有不同的变体。编译速

问题是为什么
time$to$market
不是变量名? 我试着编译它,但编译器没有抱怨,我使用的编译器是MinGW 32位,用于c++inQT。然而,它应该抱怨

我试图使用它,但编译器没有给出错误


即使您当前的编译器支持,也不要这样做(正如昆汀在评论中指出的)。它不在标准中,因此您的代码将无法移植到其他环境,甚至无法移植到使用不同标准的同一编译器(请尝试GCC选项
-ansi
-std=c++11
)。可能发生的最好情况是编译时出错,最糟糕的情况是您将追踪数小时的未定义行为。

编译器有不同的变体。编译速度可能更快,但由于某些原因,可能与某些默认设置不同。我不知道你在用什么编译器。但是如果你对你的编译器做一点研究,你会发现$是允许的。试着用不同的编译器编译,以准确地赶上你的书。检查这个主题,看看纯C++意味着什么。因为书籍通常教授纯正的语言


这完全取决于您使用的编译器,正如我在TC 4.5中使用的一样,它显示了以下错误:

编译DEMO.C:

非法字符“$”(0x24)


一些编译器可能支持它。

我们不能在变量名中使用$sign,只允许下划线,在特殊字符中GCC(可能还有其他字符)有一个扩展,允许在标识符中使用
$
。dude,字母的意思是
a-z
a-z
。数字表示
0-9
。下划线的意思是
@Yves:事实上这不是真的(关于字母),但一般的看法是,你应该把自己限制在一个代码点,不带重音的拉丁字母。@Yves为什么这个问题的分数很低?这让我不能再问更多的问题了?
2x             // a name must start with a letter
time$to$market // $ is not a letter, digit, or underscore
Start menu     // space is not a letter, digit, or underscore