如果想把一个经常用到的延时函数编写成头文件时,按照模块化编程的方法应该是这样的:
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的操作程序,等等,每次做新的工程时都要复制粘贴到工程里觉得很麻烦,于是萌生了这样的想法,编译也能通过,只是不懂有什么弊病,希望指点。
追答你完全可以按照前一种方法做啊,甚或封装成自己的库也可以。
一股脑扔进头文件里是不可行的;做点小例子小程序是没什么问题,等你将来搞大项目或者跟人合作的时候,这些烂习惯会折腾掉你不少时间的。
谢谢回复,尽管作为单片机娱乐者,将来也不太可能搞”大项目“,但觉得你的回复如同教科书般的标准,所以确认了,也同时感谢其他朋友的回复。