为什么在预处理程序指令之后没有分号?

Par*_*ita 3 c

如果我写

#include <stdio.h>;
Run Code Online (Sandbox Code Playgroud)

没有错误,但在编译期间会出现警告

pari.c:1:18:警告:#include指令末尾有额外的令牌

是什么原因 ?

Ale*_*rty 7

原因是预处理程序指令不使用分号.这是因为它们使用换行符来分隔语句.这意味着每行不能有多个指令:

#define ABC #define DEF // illegal
Run Code Online (Sandbox Code Playgroud)

但是你可以用一个\(或/,我忘记)结束每一行(除了最后一行),在多行上有一个.