编写编译器的人如何称呼它?我知道int a, b, c;
被称为表达式。但事情是这样的:int a = 2
?或a++
,a=c
等我不知道。我在哪里可以找到这些条款? C标准还是买一本关于编译器构造的书?我希望这很清楚。提前谢谢。
答案 0 :(得分:7)
int a, b, c;
这不是表达。这是declaration。
int a = 2;
这也是一个声明。 2
部分是initializer。
a ++
这是“post-increment”expression。请注意,在C世界之外,这可能只是statement。
a = c
这是一个assignment表达式(同样,在C之外,这可以是一个声明)。
这些术语的确切定义以及每种语法 for C 的分类都可以在C标准(第6章:语言)中找到,您可以找到下载/从Where do I find the current C or C++ standard documents?购买信息。
请注意,这些仅适用于 for C (及其大部分衍生产品,例如C ++,Javascript等)。这些概念在其他语言中可能没有意义(例如,某些语言不区分语句和表达式)。