c中的全局变量

时间:2013-06-19 22:32:52

标签: c variables global

如果我们在main函数之前的开头声明一个变量而不给出EXTERN关键字,它是否会被视为一个静态全局变量(只能在该文件中访问)或者我们能否从其他文件中访问它? 例如:

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

}

3 个答案:

答案 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;

它是全局范围,不能在两个文件中声明两次。