为什么我的讲师编写的所有C文件都以#开头?
为什么我的讲师编写的所有C文件都以#开头?
我正在浏览一些C课程笔记,每个C程序源文件都以程序第一行中的一个#
开始。
然后是空白处,然后是main
功能之后的其他东西。
#
是什么原因?
(现在已经不合时宜了,我不能问这个小伙子。)
这是一个例子(在结束时有一个额外的行}
)
#
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
哇,这个要求可以追溯到20世纪70年代。
在预标准化C的最初几天,如果你想调用预处理器,那么你必须在源文件的第一行写第一个#
作为第一行。 在文件顶部只写一个#
可以灵活地放置其他预处理器指令。
从伟大的Dennis Ritchie本人的原始C选秀:
12.编译器控制线
[...]为了使预处理器被调用,程序的第一行必须以#开始。 由于空行被预处理器忽略,因此该行不需要包含其他信息。
这个文件使得阅读很棒(并且让我像疯猫一样跳到这个问题上)。
我怀疑这是演讲者只是感伤 - 自从ANSI C以来它一直没有被要求。
链接地址: http://www.djcxy.com/p/59855.html上一篇: Why do all the C files written by my lecturer start with a #?
下一篇: Invoking a Java/AXIS Web Service from .NET: the ‘return null’ issue