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();}
记录点点滴滴的笔记欢迎关注,共同学习
一纸途途
