Pio*_*ost 51 language-agnostic syntax programming-languages reserved-words keyword
关键字和保留字之间有什么区别?
例如,在C++中的概念提议中,可以阅读以下语句:
该提案引入了五个新关键词:概念,概念图,其中,公理和延迟检查.所有这些关键字也将是保留字.
mol*_*olf 57
关键字在语言中具有特殊含义,并且是语法的一部分.
保留字是不能用作标识符(变量,函数等)的字,因为它们是由语言保留的.
在实践中,大多数关键字是保留字,反之亦然.但是因为他们是两个不同的东西,可能会发生一个关键字是不是保留字(如关键字才有意义在一个特殊的背景下,因此可以用作标识符),或保留字是不是一个关键字(例如,因为它留作将来使用).
更新:其他一些例子说明了区别:
goto是一个保留字但不是关键字(因此,根本不能使用它)Ral*_*ach 17
只是为了表明这种区别非常有意义:
不是所有语言都是关键字保留字.在Fortran中可以这样做:
if if then then else else
Run Code Online (Sandbox Code Playgroud)
在这种情况下,关键字不是保留的,但是根据上下文可以由编译器解释为变量.
这种区别的一个很好的例子是Java中的"goto".它不是语言关键字(即它不是有效的Java),但它是一个保留字.
似乎java设计师告诉我们"我们不会使用'goto',而你也不会".
Wiki说这个"关键字是一个仅在某些上下文中特殊的词,但保留词是一个不能用作用户定义名称的特殊词."
http://en.wikipedia.org/wiki/Reserved_word#Reserved_word_vs._keyword