提问



为什么我的讲师写的所有C文件都以#开头?


我正在阅读一些C课程笔记,每个 C程序源文件都以程序第一行的单个#开头。


然后有空格,然后是main函数后跟其他东西。


#的原因是什么?


(现在这是不合时宜的,我真的不能问那个人。)


这是一个例子(在结束}结束时有一个额外的行)


#

#include 
int main() {
   printf("Hello, World!");
   return 0;
}

最佳参考


哇,这个要求是回归到20世纪70年代。


在预标准化C的早期天,如果你想调用预处理器,那么你必须写一个#作为第一件事。源文件的第一行。仅在文件顶部写 一个#,可以灵活地放置其他预处理器指令。


来自伟大的丹尼斯·里奇本人的原始C稿:[8]



??

12。编译器控制线


??
??[[...]]为了使[[预]]处理器被调用,有必要这样做
??程序的第一行以#开头。由于预处理器会忽略空行,因此该行不需要包含其他行
??信息。



那个文件可以很好地阅读(并允许我像疯猫一样跳上这个问题)。


我怀疑这是讲师只是多愁善感 - 自ANSI C以来,它当然没有被要求。