因为这个新文件,经常被放在.c(.cpp)文件的头部,所以就给它起名叫做“头文件”,扩展名是.h....也就是说,xx.h 其实只是让需要写 xx.c 中函数声明的地方调用(可以少写几行字),至于 include 这个 .h 文件是谁,是 .h 还是 .c,还是与这个 .h 同名的 .c,都没有任何必然关系...main()函数(当然也可以没有这个函数,程序照样能启动,详细见我的blog中).在没有这个程序入口点的情况下,编译单元只生成目标文件object file(.o文件,windows下叫做.obj)....,这是前提.如果你改了它的扩展名那么你的编译器还能认识它吗上升到一个更高的层次上看待这个问题,XX兄说的也不错我想XX兄说的意思就是两者不可因为名字相同就认为两者有什么关系,名字是可以随便的~
两者之间的联系.../类型/作用域(在那个阶段有效)等信息,通俗的说一下就是,当编译器看到一个符号声明时,例如你的函数名它就会把它放到这个符号表中去登记一下符号表里存放着你的函数的入口地址,参数个数,返回信息等等一堆东西而在联接阶段主要是处理工程中的符号表与调用对应处理关系