“关键字”和“保留字”有什么区别?
关键字和保留字有什么区别?
例如,在C ++概念提案中,可以阅读以下语句:
该提案引入了五个新的关键字:概念,概念图,何处,公理和延迟检查。 所有这些关键字也将是保留字。
关键词在语言中有特殊的含义,是语法的一部分。
保留字是不能用作标识符(variables,函数等)的字,因为它们是由语言保留的。
实际上大多数关键字是保留字,反之亦然。 但是由于它们是两个不同的东西,可能会发生关键字不是保留字(例如,关键字只在特定的上下文中有意义,因此可以用作标识符),或者保留字不是关键字(例如因为它保留供将来使用)。
更新:其他人给出的例子说明了区别:
- 在Java中,
goto
是一个保留字,但不是关键字(因此,你根本不能使用它) - Fortran 没有保留字,所有关键字(如果然后等)都可以用作标识符
只是为了表明这个区别是非常有意义的:
不是所有语言都是关键字保留字。 在Fortran中可以这样做:
if if then then else else
在这种情况下,关键字不被保留,但取决于上下文可以被编译器解释为variables。
Java的一个很好的例子就是“goto”。 这不是一个语言关键字(即它不是有效的Java),但它是一个保留字。
Javadevise者似乎告诉我们“我们不会使用'goto',你也不会使用'。
维基说:“一个关键词是一个特殊的词,只是在特定的情况下,而一个保留词是一个特殊的词,不能作为用户定义的名字。
http://en.wikipedia.org/wiki/Reserved_word#Reserved_word_vs._keyword
我猜关键字是一个用作“关键字”的词(如if,for,switch等),而保留字是不能用作variables名的,因为它可能成为未来版本的关键词。
- 关键字:它有一些意义,我们可以在程序中使用。
- 保留字:我们不能在程序中使用。 他们可能会在未来使用。 例如:
goto
真的这将取决于上下文。 例如,ISO C ++标准说“if”,“while”,“int”等是关键字 ,并且实际上并没有使用术语保留字 ,除了一次在脚注中,意思是:-)
标准doe指定保留名称 – 例如,以下划线和大写字母开头的所有名称都是保留名称。
关键字:关键字对编译器有一些特殊的function。 所以关键字不能作为编码中的标识符。 保留字:保留字是保留供将来使用的字。 在java中,const和goto是当前未被使用的保留字,将来可能会被带回到java中。 如果我们在这里查看Java语言关键字( https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html ),它说java(最新我猜)有50个关键字,包括goto和const。 所以goto和const是保留的关键字。
保留字和关键字大部分是相同的,它们在GW-BASIC
具有预定义的含义…这些具有预定义的用途,不能在Basic中用于任何其他目的的使用或重新定义。 关键字不能用作variables名称。 Basic的一些关键字是… IF
, THEN
, WHILE
等。
关键字 , – 在特定上下文中具有特殊含义的词。 这是语义定义。
保留字是一个不能用作标识符的字,如variables和函数名。 这是句法定义。
例如在Java中,所有关键字都是保留字。 可能不是相反的。 goto是保留字,但没有使用,没有任何function。
在像FORTRAN这样的老式语言中,有关键字但没有保留字。
但是,关键字和保留字可以互换使用。