当一个函数文件要用到另一个函数文件中定义的函数时,可以加extern对该函数进行声明。如果有多个函数文件要用到该函数时这就可能要多次进行声明,重复的代码是需要避免的,因此自己写一个头文件是很有必要的。
例如:写一个头文件stack.h
注: void push(char c)、char pop(void)、int is_empty(void)的函数定义省略。
/* stack.h */
# ifndef STACK
# define STACK /*宏定义名就用头文件名的大写形式,这是规范的做法*/
extern void push(char c);
extern char pop(void);
extern int is_empty(void);
# endif
这样在main函数中只要包含这个头文件就可以了,而不需要写三个函数声明。如:
/* main.c */
# include
# include "stack.h"
int main(void)
{
......
}
注意:
stack.h用引号而不用角括号的原因如下:
对于角括号包含的头文件,gcc首先查找-I选项指定的目录,然后查找系统的头文件目录(通常是/user/include);而对于引号包含的头文件,gcc首先查找包含 .c文件所在的目录,然后查找-I选项指定的目录,然后查找系统的头文件目录。
阅读(1631) | 评论(0) | 转发(0) |