"关键字"和"保留字"有什么区别?

Pio*_*ost 51 language-agnostic syntax programming-languages reserved-words keyword

关键字保留字之间有什么区别?

例如,在C++中的概念提议中,可以阅读以下语句:

该提案引入了五个新关键词:概念,概念图,其中,公理和延迟检查.所有这些关键字也将是保留字.

mol*_*olf 57

关键字在语言中具有特殊含义,并且是语法的一部分.

保留字是不能用作标识符(变量,函数等)的字,因为它们是由语言保留的.

在实践中,大多数关键字是保留字,反之亦然.但是因为他们是两个不同的东西,可能会发生一个关键字是不是保留字(如关键字才有意义在一个特殊的背景下,因此可以用作标识符),或保留字是不是一个关键字(例如,因为它留作将来使用).

更新:其他一些例子说明了区别:

  • 在Java中,goto是一个保留字但不是关键字(因此,根本不能使用它)
  • Fortran 没有保留字,所有关键字(if,then等)都可以用作标识符

  • 在 Java 中,goto 是保留字,但不是关键字。 (2认同)
  • @Gamecat,不,这不是真的。有一个根本的区别,甚至在现实世界的例子中,关键字不是保留字(Fortran、Postscript、……其他?)。 (2认同)

Ral*_*ach 17

只是为了表明这种区别非常有意义:

不是所有语言都是关键字保留字.在Fortran中可以这样做:

if if then then else else
Run Code Online (Sandbox Code Playgroud)

在这种情况下,关键字不是保留的,但是根据上下文可以由编译器解释为变量.

  • 不是每个关键字的好例子都是"保留字".谢谢. (2认同)

ska*_*man 9

这种区别的一个很好的例子是Java中的"goto".它不是语言关键字(即它不是有效的Java),但它一个保留字.

似乎java设计师告诉我们"我们不会使用'goto',而你也不会".

  • 不是每个"保留字"的好例子都是关键字.谢谢. (2认同)

Bhu*_*ale 5

Wiki说这个"关键字是一个仅在某些上下文中特殊的词,但保留词是一个不能用作用户定义名称的特殊词."

http://en.wikipedia.org/wiki/Reserved_word#Reserved_word_vs._keyword