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

[复制链接]
5065|14
 楼主| eyesmall 发表于 2012-9-6 13:22 | 显示全部楼层 |阅读模式
#include<math.h>     
#include<crc.c>         
#include<delay.c>
#include<lcd.c>
#include<setup.c>
#include<pinlv.c>     
main()
{;}

那么请教  比如把最后的 pinlv.c命名是改成pinlv.h  效果有什么不同?
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吗    想知道实现过程 或者说编译过程上有什么不同?
coody 发表于 2012-9-6 15:30 | 显示全部楼层
不要包含C文件
wukunshan 发表于 2012-9-7 12:50 | 显示全部楼层
因为C编译器是从上往下编译,遇到包含的文件就展开、复制并检查。.C的文件一般都很庞大,包含过多的.C文件会增加编译器的负担,出错的可能性也增大。为了解决这个问题,在模块化编程时,要求建立两个文件:一个是.C的文件,一个是.h的文件,实际包含的时候是包含.h的文件。
 楼主| eyesmall 发表于 2012-9-10 09:40 | 显示全部楼层
6# wukunshan
那么同样的文本内容 建立.c的意义何在呢,只建立.h供程序调用不就可以了,还是想知其所以然   这样会记得牢些   多谢指教
 楼主| eyesmall 发表于 2012-9-10 09:44 | 显示全部楼层
还是说.c是为了 调试模块  调试好之后  再弄成.h  供后续程序调用
 楼主| eyesmall 发表于 2012-9-12 13:25 | 显示全部楼层
还是不是很明白呀
Litdot 发表于 2012-9-13 18:20 | 显示全部楼层
.h是通用的头文件
.c是具体实例的模块
不然怎么区分
要不别人啦delay.h是哪个编译器的库文件
Litdot 发表于 2012-9-13 18:20 | 显示全部楼层
.h是通用的头文件
.c是具体实例的模块
不然怎么区分
要不别人啦delay.h是哪个编译器的库文件
Litdot 发表于 2012-9-13 18:21 | 显示全部楼层
.h是通用的头文件
.c是具体实例的模块
不然怎么区分
要不别人要问delay.h是哪个编译器的库文件
 楼主| eyesmall 发表于 2012-10-14 12:13 | 显示全部楼层
仅仅就这点区别吗
有人说.c多了程序容易出错
12# Litdot
海川先生 发表于 2012-10-14 22:12 | 显示全部楼层
znmcu 发表于 2012-10-15 08:19 | 显示全部楼层
去看我的<<单片机基础外设9日通>>第九日上,模块化编程方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

17

主题

168

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部