【发布时间】:2010-03-16 05:49:44
【问题描述】:
例如(在 C 中):
int break = 1;
int for = 2;
为什么编译器在推断break 和for 是这里的变量时会有任何问题?
所以,我们需要关键字,因为
- 我们希望程序可读
- 我们不想让当今已经很复杂的编译器的工作过于复杂
- 但最重要的是,如果为某些特殊操作保留一些“关键字”,则语言会更强大。然后,该语言可以考虑在更高的层次上发挥作用,而不是死在尝试以明确的方式实现 for 循环。
【问题讨论】:
-
编译器只是不想做努力:)
-
仅供参考,有些语言没有关键字(Lisp 和 Smalltalk,我想不到)。我想关键字使语言更易于解析。而且我敢打赌,在某些情况下需要使用关键字来消除歧义。
-
@musicfreak: car 和 cdr 是什么?
-
我的另一辆车是 cdr:stackoverflow.com/questions/1864795/…
-
@musicfreak:以下是 Lisp 中的关键字:and、begin、case、cond、define、delay、do、else、if、lambda、let、letrec 或 quasiquote、quote、set、 unquote, unquote-splicing。我认为 car 和 cdr 是关键字,但我发现它们和 cons 不是。但是,由于它们是由内部函数实现的,因此每个实现要么保留 car、cdr、cons,要么可能首先保留、rest、concat。
标签: c keyword identifier