标题: [求助]模块化编程和头文件的问题 [打印本页]

作者: 扬扬    时间: 2010-8-17 13:51
标题: [求助]模块化编程和头文件的问题

哪位大虾帮下忙..自己写了个delay的头文件,放到KEIL下的INC里面.在用模块化的方式编写另一个工程里的代码的时候要用到delay函数,把delay.h包含进去了为什么会报错,不能用?不用模块化的方式写的时候又可以包含进来用?

 

#ifndef __DELAY_H__
#define __DELAY_H__
#define uint unsigned int
void delay(uint k)
{

   uint i,j;       
   for(i=0;i<k;i++)
   for(j=0;j<110;j++);

}
#endif

哪位肯帮下我这个菜鸟???!!!感激不尽!!

 

 


作者: 一首因为了解    时间: 2013-8-16 19:44
你的那个void delay(uint k)
{

   uint i,j;        
   for(i=0;i<k;i++)
   for(j=0;j<110;j++);

}
这一部分该房.c的文件中吧
作者: kmopty    时间: 2014-7-31 17:40
所有的头文件建议参考以下的规则:
1、头文件中不能有可执行代码,也不能有数据的定义,只能有宏、类型(typedef,struct,union,menu),数据和函数的声明。 全局变量和函数的定义不能出现在*.h文件里。
2、头文件中不能包本地数据(模块自己使用的数据或函数,不被其他模块使用)。这一点相当于面向对象程序设计里的私有成员,即只有模块自己使用的函数,数据,不要用extent在头文件里声明,只有模块自己使用的宏,常量,类型也不要在头文件里声明,应该在自己的*.c文件里声明。
3、含一些需要使用的声明。在头文件里声明外部需要使用的数据,函数,宏,类型。
4、防止被重复包含。使用下面的宏防止一个头文件被重复 包含。
#ifndef MY_INCLUDE_H
#define MY_INCLUDE_H
<头文件内容 >
#endif
包含extern "C",使C的程序可以在C++编译器被编译。
#ifdef __cplusplus
extern "C"{
#endif
<函数声明 >
#ifdef __cplusplus
}
#enfif
作者: dyun1988    时间: 2014-10-10 21:45
学习了!!!!!!!!!!!!!!!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1