因为#是引入预处理程序语句的标准前缀.
在早期的C编译器中,预处理器是一个单独的程序,它将处理所有预处理器语句(类似于早期C++"编译器"的方式,如cfront生成的C代码)并为编译器生成C代码(它可能仍然是单独的程序,但它现在也可能只是编译器的一个阶段).
该#符号只是一个可以由预处理器识别并采取行动的有用人物,如:
#include <stdio.h>
#if 0
#endif
#pragma treat_warnings_as_errors
#define USE_BUGGY_CODE
Run Code Online (Sandbox Code Playgroud)
等等.
预处理程序指令是程序代码中包含的行,它们不是程序语句,而是预处理程序的指令.这些行总是以井号(#)开头.预处理程序在实际编译代码开始之前执行,因此预处理程序在语句生成任何代码之前摘要所有这些指令.