在 C 语言中,分号 ( ;
) 用于表示语句的结束。为什么#include
行不需要分号?
问问题
4314 次
5 回答
12
#include
#
(以及所有其他以like开头的行#define
)是预处理器的一部分。这实际上是一个单独的程序,在主编译器之前运行,并执行诸如将文件包含到源代码和宏扩展之类的事情。
于 2012-04-04T12:44:23.100 回答
2
#include
由预处理器处理,编译器看不到这些语句。因此;
在语句末尾不需要。
于 2012-04-04T12:44:30.320 回答
2
因为预处理指令不是语句。
甚至不是所有的语句都必须有一个 final ;
。例如:
int bla = 1;
if (bla) {
}
在声明之后bla
我们有两个语句:一个if
语句和一个空的复合语句。没有;
,但程序是有效的。
于 2012-04-04T12:49:16.840 回答
2
该指令由预处理器处理它不是编译器,它是一个简单的文本替换处理器。它使用行尾(\n)
作为重要字符,不像 C 编译器将其视为空格。也是\
行尾有影响的原因。
于 2012-04-04T12:57:12.627 回答
1
#include "whatever.h"
它只是用“whatever.h”替换源文件中的那一行。所以你不需要放在;
“whatever.h”的末尾。预处理器会给你一个警告并忽略它。
于 2012-04-04T12:46:53.487 回答