关键字和保留字之间的区别是什么?
例如,在proposal for concepts in C++中可以阅读以下语句:
此提案引入了五个新关键字:概念,概念图,where,axiom和late check。所有这些关键字也将是 保留字。
答案 0 :(得分:56)
关键字在某种语言中具有特殊含义,并且是语法的一部分。
保留字是不能用作标识符(变量,函数等)的单词,因为它们是由语言保留的。
实际上,大多数关键字都是保留字,反之亦然。但是因为它们是两个不同的东西,关键字不是保留字可能会发生(例如,关键字只在特殊上下文中有意义,因此可以用作标识符),或者保留字不是关键字(例如,因为它留作将来使用)。
更新:其他人给出的一些例子说明了区别:
goto
是保留字,但不是关键字(因此,您根本无法使用它)答案 1 :(得分:17)
只是为了表明这种区别非常有意义:
并非所有语言都是关键字保留字。在Fortran中可以这样做:
if if then then else else
在这种情况下,关键字不是保留的,但是根据上下文可以被编译器解释为变量。
答案 2 :(得分:8)
这种区别的一个很好的例子是Java中的“goto”。它不是语言关键字(即它不是有效的Java),但它是一个保留字。
似乎java设计师告诉我们“我们不会使用'goto',你也不是。”
答案 3 :(得分:5)
Wiki说这个“关键字是一个仅在某些上下文中特殊的词,但保留词是一个不能用作用户定义名称的特殊词。”
http://en.wikipedia.org/wiki/Reserved_word#Reserved_word_vs._keyword
答案 4 :(得分:1)
我猜关键字是一个用作“关键字”的词(如if,for,switch等等),而保留字是不能用作变量名的词,因为它可能会成为未来版本中的关键字语言。
答案 5 :(得分:1)
goto
答案 6 :(得分:0)
真的很大程度上取决于背景。例如,ISO C ++标准表示“if”,“while”,“int”等内容是关键字,并且实际上并未使用术语保留字,除了一次,在脚注中,其他东西可能意味着: - )
标准部门指定保留名称 - 例如,所有以下划线和大写字母开头的名称都是保留名称。
答案 7 :(得分:0)
关键字:关键字对编译器有一些特殊功能。因此,关键字不能用作编码中的标识符。 保留字:保留字是保留供将来使用的字。在java中,const和goto是当前未使用的保留字,并且可能在将来被带回java。 如果我们在这里检查Java语言关键字(https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html),它说java(我猜最新)有50个关键字,包括goto和const。所以goto和const是保留的关键字。
答案 8 :(得分:-1)
保留字和关键字大致相同,并且在GW-BASIC
中具有预定义含义...这些含义具有预定义用途,不能在Basic中用于任何其他目的或重新定义。关键字不能用作变量名。 Basic的一些关键字是...... IF
,THEN
,WHILE
等。
答案 9 :(得分:-1)
关键字, - 在特定上下文中具有特殊含义的字词。 它的语义定义。
保留字是一个不能用作标识符的字词 - 例如,变量和函数名称。它的语法定义。
例如,在Java中,所有关键字都是保留字。可能不是相反的。 goto是保留字但未使用且没有功能。
在像FORTRAN这样的老语言中,有关键字,但没有保留字。
但是,关键字和保留字可互换使用。