采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
要实现 a.h 里定义的函数,必须有个 a.c 文件吗?.c文件的名字可以和.h文件的名字不一样吗?如果可以,那编译器怎么寻找它实现在那里呢?
必须提供相应的函数实现,但不一定在c文件当中,头文件其实也可以,但要注意被多个文件引入会有重复定义的问题,这要同学理解下宏展开的机制,我们在课程讲预编译的一章有提到。
C文件的名字不必与头文件一致,这更多是一种约定。编译完成之后每一个符号都会有自己的地址,链接器会负责完成符号到地址的转换工作。
如果.c文件可以和.h文件的名字不一样,那么编译器怎么确定我的函数实现在哪里呢?
编译的时候所有的源码是放一起编的,每一个函数都会有自己的地址,根据这个地址在运行时调用函数。你说的是怎么关联头文件和源码吧,编译的时候头文件直接展开,后面就没有头文件了,不存在关联的问题。
好吧,谢谢老师
登录后可查看更多问答,登录/注册
如果通向大牛的道路有捷径,那就是先学好C语言
1.5k 3
1.0k 4
1.3k 9
1.5k 1
802 2