免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ronghuahan
打印 上一主题 下一主题

c 语言 头文件 存在的 好处以及意义?谁能把我搞懂 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-01-11 12:10 |只看该作者

回复 #10 scutan 的帖子

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2008-01-11 12:13 |只看该作者
头文件本来就没意义,意义是人赋予它的。
# include "foo.c" 也是可以的。
因此,可以不要头文件,但是楼主该不会连声明和定义的区别都没搞懂吧?
那可就麻烦了。

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
13 [报告]
发表于 2008-01-11 12:14 |只看该作者
应该不仅仅是维护方便

估计没声明的定义,默认用extern声明了。

而且,如果最后不是不完全连接,而是完全连接,既不使用so,不允许出现未解析符号,情况是否不同?

论坛徽章:
0
14 [报告]
发表于 2008-01-11 13:36 |只看该作者
如果有很多文件中都需要调用某库中的函数,就需要在每个文件中都声明这些函数,当然不如放在一个.h文件中,方便管理。

论坛徽章:
0
15 [报告]
发表于 2008-01-11 13:53 |只看该作者
原帖由 flw 于 2008-1-11 12:13 发表
头文件本来就没意义,意义是人赋予它的。
# include "foo.c" 也是可以的。
因此,可以不要头文件,但是楼主该不会连声明和定义的区别都没搞懂吧?
那可就麻烦了。

#
一般人会赋予头文件什么含义呢?请你说说
声明和定义的区别吧.
我只知道定义就是分配内存的地方.
声明那是说外面有这个东西.并且已经分配了内存.

[ 本帖最后由 ronghuahan 于 2008-1-11 13:54 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
16 [报告]
发表于 2008-01-11 13:59 |只看该作者
原帖由 ronghuahan 于 2008-1-11 13:53 发表

#
一般人会赋予头文件什么含义呢?请你说说
声明和定义的区别吧.
我只知道定义就是分配内存的地方.
声明那是说外面有这个东西.并且已经分配了内存.

人们在工程实践中,赋予 # include 的意义就是:
只将声明而不是定义写入 .h 为后缀的文件中,并在使用它的地方以 # include 语句包含
这句话概括起来太难,因为还有数据类型的定义,
和 inline 函数等等,但总而言之,并非所有代码都可以写入 .h 文件,虽然 # include 并不做这种强制 —— 这就是人们赋予头文件的意义。

论坛徽章:
0
17 [报告]
发表于 2008-01-11 14:17 |只看该作者
试图使用setbuf而不使用stdio.h吧

论坛徽章:
4
戌狗
日期:2013-08-15 18:22:43技术图书徽章
日期:2013-08-21 13:48:45巨蟹座
日期:2013-09-26 17:06:39处女座
日期:2013-12-25 11:26:10
18 [报告]
发表于 2008-01-11 14:52 |只看该作者
声明指示了obj文件中的symtab节包含什么,换句话说,就是指示了那些符号参与连接。

没有声明就无法连接。

之所以现在没有声明,也可以完成连接。是GCC帮你用默认的extern给声明了。

论坛徽章:
0
19 [报告]
发表于 2008-01-11 14:56 |只看该作者
原帖由 塑料袋 于 2008-1-11 14:52 发表
声明指示了obj文件中的symtab节包含什么,换句话说,就是指示了那些符号参与连接。

没有声明就无法连接。

之所以现在没有声明,也可以完成连接。是GCC帮你用默认的extern给声明了。

默认是extern 的是吗?
谢谢!
那么头文文件的好处是不是一处定义,多处引用,方便修改呀?

论坛徽章:
0
20 [报告]
发表于 2008-01-11 14:59 |只看该作者
原帖由 flw 于 2008-1-11 13:59 发表

人们在工程实践中,赋予 # include 的意义就是:
只将声明而不是定义写入 .h 为后缀的文件中,并在使用它的地方以 # include 语句包含
这句话概括起来太难,因为还有数据类型的定义,
和 inline 函数等等, ...

那么头文文件的好处是不是一处定义,多处引用,方便修改呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP