编写单片机头文件问题求高手解答
如果想把一个经常用到的延时函数编写成头文件时,按照模块化编程的方法应该是这样的: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的相应库文件夹里,随时在不同的工程里调用,会出现问题吗。 展开
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的相应库文件夹里,随时在不同的工程里调用,会出现问题吗。 展开
展开全部
程序块不要放在头文件中。
等你将来搞结构化编程时,面对几十几百个头文件和功能模块文件时,你就会明白的。
等你将来搞结构化编程时,面对几十几百个头文件和功能模块文件时,你就会明白的。
更多追问追答
追问
问题的初衷是这样的,对于18B20的读写程序,I2C的时序程序,LCD1602的操作程序,等等,每次做新的工程时都要复制粘贴到工程里觉得很麻烦,于是萌生了这样的想法,编译也能通过,只是不懂有什么弊病,希望指点。
追答
你完全可以按照前一种方法做啊,甚或封装成自己的库也可以。
一股脑扔进头文件里是不可行的;做点小例子小程序是没什么问题,等你将来搞大项目或者跟人合作的时候,这些烂习惯会折腾掉你不少时间的。
展开全部
可以!但是这个头文件只能被一个源文件包含,若想在多个源文件中使用该函数,在其他源文件中声明extern void dealy(int ); 即可!!知道原理就行。。。随便你~!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以!甚至你可以直接 #include“delayms.c” 都是可以的 。但是请尽量避免使用延时函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询