编写单片机头文件问题求高手解答

如果想把一个经常用到的延时函数编写成头文件时,按照模块化编程的方法应该是这样的:1)编写.c文件,delayms.c#include"delayms.h"voiddela... 如果想把一个经常用到的延时函数编写成头文件时,按照模块化编程的方法应该是这样的:
1)编写.c文件,delayms.c
#include "delayms.h"

void delayms(unsigned int k)
{
unsigned int a,b;
for(a=0;a<k;a++){
for(b=0;b<50;b++)
{;}}
}
2)编写.h文件, delayms.h
#ifndef __DELAYMS_H__
#define __DELAYMS_H__
void delayms(unsigned int k);
#endif
使用时将.c文件加入用到的工程里,将.h文件放在工程所在的文件夹中;
问题??
如果不要写.c文件,而这样编写delayms.h文件:

#ifndef __DELAYMS_H__
#define __DELAYMS_H__
void delayms(unsigned int k)

{
unsigned int a,b;
for(a=0;a<k;a++){
for(b=0;b<50;b++)
{;}}
}
#endif

再将delayms.h存入keil的相应库文件夹里,随时在不同的工程里调用,会出现问题吗。
展开
 我来答
一剑出血
高粉答主

2013-04-01 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.6亿
展开全部
程序块不要放在头文件中。
等你将来搞结构化编程时,面对几十几百个头文件和功能模块文件时,你就会明白的。
更多追问追答
追问
问题的初衷是这样的,对于18B20的读写程序,I2C的时序程序,LCD1602的操作程序,等等,每次做新的工程时都要复制粘贴到工程里觉得很麻烦,于是萌生了这样的想法,编译也能通过,只是不懂有什么弊病,希望指点。
追答
你完全可以按照前一种方法做啊,甚或封装成自己的库也可以。
一股脑扔进头文件里是不可行的;做点小例子小程序是没什么问题,等你将来搞大项目或者跟人合作的时候,这些烂习惯会折腾掉你不少时间的。
weida爱问
2013-04-01 · TA获得超过2427个赞
知道小有建树答主
回答量:1345
采纳率:72%
帮助的人:878万
展开全部
可以!但是这个头文件只能被一个源文件包含,若想在多个源文件中使用该函数,在其他源文件中声明extern void dealy(int ); 即可!!知道原理就行。。。随便你~!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
怒战九人黑
2013-04-01 · TA获得超过162个赞
知道答主
回答量:55
采纳率:100%
帮助的人:27.7万
展开全部
可以!甚至你可以直接 #include“delayms.c” 都是可以的 。但是请尽量避免使用延时函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式