1

如果我们在 main 函数的开头声明一个变量而没有给出 EXTERN 关键字,它将被视为静态全局变量(只能在该文件中访问)还是我们可以从其他文件中访问它?例如:

#include<stdio.h>
int k;
main()
{

}
4

3 回答 3

4

从技术上讲,该变量k可用于其他文件(模块),但除非其他文件有extern int k声明,否则它们将不知道该变量,并且编译时错误将表明该变量k在其他文件中是未知的。

于 2013-06-19T22:35:48.643 回答
1

外部定义和声明,默认初始化为零。

int k;

仅外部声明,在其他地方定义和初始化

extern int k;

外部定义、初始化和声明

int k = 2;
于 2013-06-19T22:39:00.740 回答
0
static int k;

它告诉编译器变量 k 可以在文件 scocpe 访问,不能在外部访问。

extern int k;

它告诉链接器变量 k 链接到另一个文件中的变量 k。

int k;

是全局作用域,不能在两个文件中声明两次。

于 2013-06-19T23:29:47.590 回答