使用外部变量和不使用外部变量的区别
Difference between using extern variable or not using extern variable
我对使用 "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);
}
但是,当我使用外部变量时:
在 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 来声明变量。谁能给我任何提示?
您必须定义一次变量并在 header 中声明它,以便其余文件对变量可见。
当您不在 header 文件中使用 extern
时,每次您都在多个文件中定义相同的变量。
我对使用 "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);
}
但是,当我使用外部变量时:
在 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 来声明变量。谁能给我任何提示?
您必须定义一次变量并在 header 中声明它,以便其余文件对变量可见。
当您不在 header 文件中使用 extern
时,每次您都在多个文件中定义相同的变量。