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

  • 回答 (2)
  • 关注 (0)
  • 查看 (68)

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

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

然后是空格,然后是其他的东西,然后是main功能。

这是什么原因#?

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

#
#include <stdio.h>
int main() {
   printf("Hello, World!");
   return 0;
}
f1不如蜗牛f1不如蜗牛提问于
人生的旅途辣鸡前端回答于

据我所知,这个要求并不是说第一个字符#本身必须是一个字符串,只是以a开头#,所以为什么不直接进行#include?还是我理解错了?

最爱开车啦互联网的敏感者回答于

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

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

从由伟大的丹尼斯里奇自己原来的草案C:

12.编译器控制线

[...]为了使预处理器被调用,程序的第一行必须以#开始。由于空行被预处理器忽略,所以这行不需要其他信息。

那个文件使得阅读很棒(让我像疯猫一样跳到这个问题上)。

我怀疑这是演讲者只是感伤 - 自ANSI C以来一直没有被要求。

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问36 回答
  • 富有想象力的人

    3 粉丝0 提问29 回答
  • o o

    4 粉丝494 提问27 回答
  • 学生

    3 粉丝476 提问27 回答

扫码关注云+社区

领取腾讯云代金券