“关键字”和“保留字”有什么区别呢?
例如,在C++概念提案中,可以看到以下陈述:
此提案引入了五个新的关键字:concept、concept map、where、axiom 和 late check。所有这些关键字也将是保留字。
“关键字”和“保留字”有什么区别呢?
例如,在C++概念提案中,可以看到以下陈述:
此提案引入了五个新的关键字:concept、concept map、where、axiom 和 late check。所有这些关键字也将是保留字。
关键字在语言中有特殊含义,是语法的一部分。
保留字是指不能用作标识符(变量、函数等)的单词,因为它们被语言保留。
实际上,大多数关键字都是保留字,反之亦然。但由于它们是两个不同的概念,可能会出现一个关键字不是保留字(例如,关键字只在特定上下文中具有意义,因此可以用作标识符),或者保留字不是关键字(例如,因为它被保留用于未来使用)。
更新:以下是其他人提供的一些示例,说明了这种区别:
goto
是一个保留字但不是关键字(因此,您根本不能使用它)goto
是 Java 中的一个关键字。 - user207421仅仅为了展示这个区别非常重要:
并不是所有语言的所有关键字都是保留字。在Fortran中,有可能会做到这一点:
if if then then else else
在这种情况下,关键字并不是保留的,但是根据上下文,编译器可以将它们解释为变量。if then then then = else else else = then
。 - James Pringle一个很好的例子是Java中的“goto”的区别。它不是语言关键字(即它不是有效的Java),但它是一个保留词。
似乎Java的设计者在告诉我们:“我们不会使用'goto',你也不应该使用它。”
goto
是 Java 中的一个关键字。 - user207421if
,else
等)。 - Sean Piankagoto
我猜关键字是指作为“关键字”使用的单词(例如if,for,switch等),而保留字则是指您不能将其用作变量名称的内容,因为它可能在语言的未来版本中成为关键字。
关键字:关键字在编译器中具有一些特殊功能。因此,在编码中不能使用关键字作为标识符。 保留字:保留字是为将来预留的单词。在Java中,const和goto是保留字,目前未被使用,但可能在未来重新引入Java中。 如果我们在这里检查Java语言关键字(https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html),它说Java(我猜是最新的)有50个关键字,包括goto和const。因此,goto和const是保留的关键字。
实际上这取决于很多上下文。例如,ISO C++标准指出像“if”、“while”、“int”等都是关键字,并没有使用术语保留字,除了一次在脚注中,可能意思是其他的东西 :-)
标准确实指定了保留名称 - 例如,所有以下划线和大写字母开头的名称都是保留名称。
goto
是 Java 中的一个关键字。关键字是语法上的。 - user207421保留字和关键字在GW-BASIC
中基本上是相同的,它们具有预定义的含义...这些具有预定义的用途,不能在Basic中用于其他目的或重新定义。关键字不能用作变量名。Basic的一些关键字是...IF
、THEN
、WHILE
等。