### 多文件编程 多文件编程时一个文件里可以包含多个函数,一个函数只能属于一个文件。 多文件编程基本步骤: * 把所有函数分散在多个不同的源文件里,主函数通常单独占一个文件。 * 为每个源文件编写配对的以.h作为扩展名的头文件,主函数所在的源文件不需要配对的头文件,所有不分配内存的内容都可以写在头文件里,头文件里至少包含配对源文件里所有的函数声明。 * 在每个源文件里使用#include预处理指令包含必要的头文件,配对头文件是必要头文件,如果头文件里声明的函数被源文件使用了则这个头文件也是必要头文件。 可以在gcc命令后列出所有源文件的路径,这样可以编译多文件方式编写的程序。 add.c add.h main.c main.c #include <stdio.h> #include "add.h" int main(){ int num = 0, num1 = 0; printf("请输入两个数字:"); scanf("%d%d", &num, &num1); printf("求和结果是%d\n", add(num, num1)); return 0; } add.h int add(int, int); add.c #include "add.h" int add(int num, int num1){ return num + num1; } 可以把程序的编译过程记录在Makefile文件里,然后使用make工具根据这个文件的内容完成编译工作。 头文件的内容应该被包含在条件编译的预处理指令中间,这样可以避免被多次编译。 #ifndef __ADD_H__ #define __ADD_H__ int add(int, int); #endif // __ADD__H_ 第一个预处理指令必须是#ifndef。 头文件里的宏名称需要根据文件名变化得到。 如果想要在一个源文件里使用另外一个源文件里声明的全局变量就需要使用`extern`关键字再次声明这个变量。 extern int num; extern 关键字声明变量的语句不会分配内存,通常放在头文件中。 不可以跨文件使用静态全局变量。