【发布时间】:2011-08-22 18:08:04
【问题描述】:
我正在学习 C 语言,并且正在查看 Linux 目录 /usr/include 中的一些头文件,例如 stdio.h、stdlib.h 等。真正困扰我的是,我看到所有函数都使用 @987654324 定义@ 关键字,这意味着它们只被声明而没有任何定义,例如:
extern FILE *fopen (__const char *__restrict __filename,
__const char *__restrict __modes) __wur;
对于每个其他头文件中的每个其他函数也是如此。我的问题是,如果它们只被声明它们的实现在哪里?它们必须在某处实施,对吗?
【问题讨论】:
-
头文件,尤其是系统头文件,不适合学习基本的C语言。先学习语言,不用担心像那里使用的语言滥用。
-
实现在库中,任何关于 C 语言的基本文本都会告诉你。 ...“外部变量”——你的意思是“外部关键字”。
-
请注意,
extern关键字在函数声明中是完全无关的。它所做的只是在编译器解析它时浪费磁盘空间和解析器时间。当然 cmets 和参数名称也这样做.. -
你为什么不选择一个答案作为正确答案?
标签: c file header system implementation