繁体   English   中英

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

[英]What is the difference between “keyword” and “reserved word”?

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

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

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

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

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

实际上,大多数关键字都是保留字,反之亦然。 但是因为它们是两个不同的东西,关键字不是保留字可能会发生(例如,关键字只在特殊上下文中有意义,因此可以用作标识符),或者保留字不是关键字(例如,因为它留作将来使用)。

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

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

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

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

if if then then else else

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

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

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

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

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

我猜关键字是一个用作“关键字”的单词(如if,for,switch等等),而保留字则不能用作变量名,因为它可能会成为该语言未来版本中的关键字。

  • 关键字:它有一定的含义,我们可以在程序中使用。
  • 保留字:我们不能在程序中使用。 它们将来可能会被使用。 示例: goto

真的很大程度上取决于背景。 例如,ISO C ++标准说“if”,“while”,“int”等等是关键字 ,并且实际上并没有使用术语保留字 ,除了一次,在脚注中,其他东西可能是意思是:-)

标准的doe指定保留名称 - 例如,所有以下划线和大写字母开头的名称都是保留名称。

关键词:关键词对编译器有一些特殊的功能。 因此,关键字不能用作编码中的标识符。 保留字:保留字是保留供将来使用的字。 在java中,const和goto是当前未使用的保留字,并且可能在将来被带回java。 如果我们在这里查看Java语言关键字( https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html ),它说java(最新的我猜)有50个关键字,包括goto和const。 所以goto和const是保留的关键字。

keyword , - 在特定上下文中具有特殊含义的单词。 它是语义定义。

保留字是一个不能用作标识符的单词 - 例如变量和函数名。 这是句法定义。

例如,在Java中,所有关键字都是保留字。 可能不是相反的。 goto是保留字但未使用且没有功能。

在像FORTRAN这样的老语言中,有关键字,但没有保留字。

但是,关键字和保留字可互换使用。

保留字和关键字大多是相同的,它们在GW-BASIC具有预定义的含义......这些含义具有预先定义的用途,不能在Basic中用于任何其他目的或重新定义。 关键字不能用作变量名。 Basic的一些关键词是...... IFTHENWHILE等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM