如果我们在main函数之前的开头声明一个变量而不给出EXTERN关键字,它是否会被视为一个静态全局变量(只能在该文件中访问)或者我们能否从其他文件中访问它? 例如:
#include<stdio.h>
int k;
main()
{
}
答案 0 :(得分:4)
变量k
在技术上可用于其他文件(模块),但除非其他文件具有extern int k
声明,否则它们将不知道变量,编译时错误将指示k
在另一个文件中未知。
答案 1 :(得分:1)
外部定义和声明,默认初始化为零。
int k;
仅限外部声明,定义并初始化其他地方
extern int k;
外部定义,初始化和声明
int k = 2;
答案 2 :(得分:0)
static int k;
它告诉编译器变量k在文件scocpe上是可访问的,无法到达外部。
extern int k;
它告诉链接器变量k链接到另一个文件中的变量k。
int k;
它是全局范围,不能在两个文件中声明两次。