我最近开始意识到强烈建议使用“extern”关键字。因此,我开始怀疑我使用头文件的当前(无外部)方式是否有任何问题:
主.c:
#include "main.h"
#include "function.h"
int main(void){
globalvariable = 0;
testfunction();
return 0;
}
主.h:
#ifndef MAIN_H_
#define MAIN_H_
int globalvariable;
#endif /* MAIN_H_ */
函数.c:
#include "main.h"
#include "function.h"
void testfunction(){
globalvariable++;
return;
}
函数.h:
#ifndef FUNCTION_H_
#define FUNCTION_H_
void testfunction(void);
#endif /* FUNCTION_H_ */
因此,每个需要访问globalvariable的新源文件只需要包含 main.h。
这种方法的一个明显缺点是数组:一旦声明了数组,就不能使用 {element0, element1, ...} 格式为数组赋值。
顺便说一句,当我给globalvariable一个初始值为零时,我是在那个时候定义它吗?还是更早分配内存?
另外,我使用的方法有官方术语吗?