为什么$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