. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->C/C++语言
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  c语言的文件包含问题  [待解决] 回复[ 1次 ]   点击[ 658次 ]  
blackberry
[帖 主]   [ 发表时间:2008-12-09 12:46 ]   [引用]   [回复]   [ top ] 
荣誉值:16
信誉值:0
注册日期:2008-10-12 13:46
请问大家知道c的源文件和同名头文件的关系吗? 
文件到底是如何组织的呀?为什么比如说:我有3个文件,main.c,function.c,function.h, 
在main.c里有语句:#include <function.h>;, 
在function.c里也有语句:#include <function.h>;, 
其中function.h里面是function.c里面的函数的申明,function.c里面是函数的定义。 
main.c里调用了function.c里面定义的函数。 
问题: 
    mian.c没有包含文件function.c,为什么main.c里面的主函数可以调用function.c里面的定义的函数?main.c里面不是只包含了函数的申明吗? 
谢谢啊!
younggay
[第1楼]   [ 回复时间:2008-12-09 14:08 ]   [引用]   [回复]   [ top ] 
荣誉值:273
信誉值:0
注册日期:2008-01-23 20:23
在编译的时候,头文件只对编译过程起一个影响的作用,但是,头文件是不需要编译成obj文件的,只要在编译的时候对于调用的函数能够起到一个声明作用,通知编译器该函数存在就行了。而编译完成后,你的两个C文件都会编程obj文件,在link的时候,主函数调用的函数将会在obj文件中进行搜索,如果找到了就没问题,找不到就报错。你的两个obj文件在统一目录下,所以,能够找到相应的函数。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved