首页 文章

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

提问于
浏览
411

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

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

然后有空格,然后跟着 main 函数后跟其他东西 .

# 的原因是什么?

(现在这是不合时宜的,我不能真的问这个小伙子 . )

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

#

#include <stdio.h>
int main() {
   printf("Hello, World!");
   return 0;
}

2 回答

  • 592

    哇,这个要求可以追溯到20世纪70年代 .

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

    来自an original C draft by the great Dennis Ritchie himself

    12.编译器控制线[...]为了使[预]处理器被调用,程序的第一行必须以#开头 . 由于预处理器会忽略空行,因此该行不需要包含其他信息 .

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

    我怀疑这是讲师只是多愁善感 - 自从ANSI C以来就没有必要 .

  • 1

    截至C / C的ISO标准:

    #new-line形式的预处理指令无效 .

    所以在今天的编译器中,空哈希没有做任何事情(比如 new-line ; 没有功能) .

    PS :在预先标准化的C中, # new-line 具有重要作用,它用于调用C预处理器(如@Bathsheba所指出的) . 所以,这里的代码要么是在那个时间段内写的,要么是来自习惯 .

相关问题