模块化编程要求生成相同名字的 .c 源文件 和 .h 头文件
其中 . h 是在引用该文件预编译时候展开的。(变量声明,函数声明,)
其中 . c 是在引用该文件编译后链接使用的。(完整函数,变量命名)
注意:
.h 文件
1.#ifndef XXX
#define XXX
//Your Code
#endif
防止头文件多次引用,多次头文件被编译
大小写没关系
2.不要在头文件里定义变量,因为重复引用头文件,该变量变量会反复展开,造成错误
3.声明 extern int a void print();
定义 int a=3; void print() { };
4.想要该源文件中的全局变量只在该文件中使用,不在其它源文件中使用,可以给变量加上static声明,函数也是一样,可对其它源文件隐藏
5.只有全局变量并且没有被static声明的变量才能声明为extern
6.在有文件里 extern int a 声明源文件中的全局变量 , 就变成了全局变量 可以外部访问
7.定义函数时候 加上extern ,说明函数可以外部引用(也可省略)
对于函数来说,默认为extern
8.在函数内部的变量,加上static,可防该变量在函数结束后在栈中被回收。存储在静态区
9.关于include 大部分include写在源文件里面,
头文件名应尽量与实现功能的源文件相同,即module.c和module.h。但源文件不一定要包含其同名的头文件