在C文件中,我定义了一个变量:int x
,如果我想在其他文件中使用它,我知道应该使用extern int x
进行声明。
我的问题是:在其他文件中应该在哪里声明它?
在所有函数之外,
它将在使用它的函数内部调用吗?
- 哪一个是正确的?,还是
- 如果两者都正确,哪一个更受欢迎?
// in file a.c:
int x;
// in file b.c:
extern int x;
void foo() { printf("%d\n", x); }
// in file b.c:
void foo() {
extern int x;
printf("%d\n", x);
}
我有疑问:
extern
variables in C来深入了解这个话题。变量声明应该放在头文件中,这样它只需要被写一次——这意味着你可以比在六个源文件的二十个函数中有二十个副本更容易地进行更改。a.c
和b.c
都包含了这个头文件——在a.c
中包含它是为了确保声明与定义匹配。你所展示的两种变量声明方式都是“技术上正确”的;它们按照你的期望工作。但是,也都不是理想的方法。 - Jonathan Leffler