test.c:
#include "file.h"
Run Code Online (Sandbox Code Playgroud)
在上面的语句中,将搜索哪些目录?
我想要test.c搜索locates 的目录,对吗?
但这就是全部吗?
顺便说一下,使用头文件有什么好处?Java不需要头文件......
#include <header_name>:标准包含文件:首先查看标准路径(系统包括编译器的路径设置)#include "header_name":首先查看当前路径,然后查看包含路径(项目特定查找路径)使用头文件的好处是为其他人提供库的接口,而无需实现.Java不需要它,因为java字节码或jar能够描述自己(反射).C代码不能(还)做到这一点.
在Java中,您只需要jar并具有正确的use语句.在C中,您(大多数时候)需要一个头文件和一个lib文件(或头文件和dll).
另一个原因是编译c代码的方式.编译器编译转换单元(带有所有包含头的ac/cpp文件),第二步中的链接器链接整个内容.不得编译声明,这样可以节省时间并避免为链接器必须清理的每个编译单元生成无用的代码.
这只是一个普遍的想法,我不是编译专家,但应该有所帮助.