对于使用"extern“关键字的变量定义和声明,我有点困惑。假设我想要一个变量'timer‘可以在多个c文件中使用。然后我可以:
关于c1.h
int timer;然后在c1.c上
#include "c1.h"
void timer_increase() {
timer++
}然后在c2.c上
#include "c1.h"
void print_timer() {
printf("%d", timer);
}但是,当我使用extern变量时:
关于c1.h
extern int timer;然后在c1.c上
#include "c1.h"
int timer;
void timer_increase() {
timer++
}然后在c2.c上
#include "c1.h"
void print_timer() {
printf("%d", timer);
}这两个脚本都正常工作,我看不出有什么理由必须使用extern来声明变量。有人能给我任何提示吗?
发布于 2018-06-15 02:48:59
您必须定义变量一次,并在标头中声明它,以便其他文件对变量具有可见性。
当在头文件中不使用extern时,每次在多个文件中定义相同的变量时。
https://stackoverflow.com/questions/50868416
复制相似问题