C语言 | 编写头文件简述 与工程项目相关联系
本文以代码分析
文件有header.h 、main.c、a.c、b.c
编写 header.h
// 以下两句话,能防止头文件被重复包含
// 头文件的内容:
// 总体的原则,是存放所有.c文件都要用的公共资源
// 仔细分析,头文件可以包含如下内容:
// 0,其他头文件
// 1,普通函数的声明
// 2,宏定义
// 3,全局变量的声明
// 4,静态函数的定义
// 其他头文件(比如系统的头文件)
// 函数声明
void fa(void);
void fb(void);
// 宏定义
({ \
typeof(x) _x = x; \
typeof(y) _y = y; \
_x > _y ? _x : _y; \
})
// 声明全局变量(后面不要加赋值)
extern int x;
// 静态函数的定义
// 普通函数:在所有的.c文件中都可见
// 静态函数:只在.c文件内部可见
static void static_func(void)
{
printf("我是一个静态函数\n");
}
编写 main.c
// 由于一个程序可能要引入非常多的函数声明
// 为了方便,一般都将函数声明等公用的语句写入头文件
// void fa(void);
// void fb(void);
// 区别:
// <>的搜索范围是系统头文件的指定目录(/usr/include)
// ""的搜索范围是当前目录 +
// 系统头文件的指定目录(/usr/include)
int main(void)
{
fa();
fb();
printf("x的值:%d\n", x);
// 条件编译
// 含义: 如果定义了ABCD这个宏,则编译其所包含的语句
// 如果没有定义ABCD这个宏,则删除其所包含的语句
printf("定义了ABCD这个宏\n");
// 含义: 如果没有定义ABCD这个宏,则编译其所包含的语句
// 如果已经定义了ABCD这个宏,则删除其所包含的语句
printf("没有定义ABCD这个宏\n");
}
编写 a.c
// 包含系统的标准输入输出头文件
// 以便于可以正常使用printf 函数
void fa()
{
printf("我是fa\n");
printf("最大值:%d\n", MAX(66, 88));
// 调用静态函数
static_func();
}
// 全局变量
int x = 100;
编写 b.c
// 包含系统的标准输入输出头文件
// 以便于可以正常使用printf 函数
void fb()
{
printf("我是fb\n");
printf("最大值: %d\n", MAX(111, 222));
printf("x的值: %d\n", x);
// 调用静态函数
static_func();
}
记录点点滴滴的笔记欢迎关注,共同学习
一纸途途