打印

关于C51头文件.c和.h有何不同

[复制链接]
4225|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eyesmall|  楼主 | 2012-9-6 13:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
znmcu| | 2012-9-6 13:33 | 只看该作者
如果你直接include .c,那你就不用把.C文件加到工程中了。

使用特权

评论回复
板凳
wukunshan| | 2012-9-6 14:01 | 只看该作者
在C语言里,不允许#include<****.c>这样的表达。直接包含一两个.C的文件可能没事,但直接包含多个.C的文件就有可能出问题。

使用特权

评论回复
地板
eyesmall|  楼主 | 2012-9-6 15:14 | 只看该作者
3# wukunshan
那如果是模块化编程的话,模块都要建成***.h吗    想知道实现过程 或者说编译过程上有什么不同?

使用特权

评论回复
5
coody| | 2012-9-6 15:30 | 只看该作者
不要包含C文件

使用特权

评论回复
6
wukunshan| | 2012-9-7 12:50 | 只看该作者
因为C编译器是从上往下编译,遇到包含的文件就展开、复制并检查。.C的文件一般都很庞大,包含过多的.C文件会增加编译器的负担,出错的可能性也增大。为了解决这个问题,在模块化编程时,要求建立两个文件:一个是.C的文件,一个是.h的文件,实际包含的时候是包含.h的文件。

使用特权

评论回复
7
eyesmall|  楼主 | 2012-9-10 09:40 | 只看该作者
6# wukunshan
那么同样的文本内容 建立.c的意义何在呢,只建立.h供程序调用不就可以了,还是想知其所以然   这样会记得牢些   多谢指教

使用特权

评论回复
8
eyesmall|  楼主 | 2012-9-10 09:44 | 只看该作者
还是说.c是为了 调试模块  调试好之后  再弄成.h  供后续程序调用

使用特权

评论回复
9
eyesmall|  楼主 | 2012-9-12 13:25 | 只看该作者
还是不是很明白呀

使用特权

评论回复
10
Litdot| | 2012-9-13 18:20 | 只看该作者
.h是通用的头文件
.c是具体实例的模块
不然怎么区分
要不别人啦delay.h是哪个编译器的库文件

使用特权

评论回复
11
Litdot| | 2012-9-13 18:20 | 只看该作者
.h是通用的头文件
.c是具体实例的模块
不然怎么区分
要不别人啦delay.h是哪个编译器的库文件

使用特权

评论回复
12
Litdot| | 2012-9-13 18:21 | 只看该作者
.h是通用的头文件
.c是具体实例的模块
不然怎么区分
要不别人要问delay.h是哪个编译器的库文件

使用特权

评论回复
13
eyesmall|  楼主 | 2012-10-14 12:13 | 只看该作者
仅仅就这点区别吗
有人说.c多了程序容易出错
12# Litdot

使用特权

评论回复
14
海川先生| | 2012-10-14 22:12 | 只看该作者
mark

使用特权

评论回复
15
znmcu| | 2012-10-15 08:19 | 只看该作者
去看我的<<单片机基础外设9日通>>第九日上,模块化编程方法。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:新手一个,干嘛嘛不行

10

主题

145

帖子

0

粉丝