c–>extern关键字的使用(C — > use of extern keyword)

extern关键字的使用

作用:声明外部符号(使用其他文件的全局变量)

例子:

源文件:

test.c

#include <stdio.h>
extern int  year;//使用extern关键字从add.c源文件中声明外部符号的全局变量
int main(){
	printf("%d", year);//打印结果2020
	return 0;
}

add.c

int year = 2022;//声明全局变量

有static关键词的情况

static修饰全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部才可以使用,其他源文件不能使用

全局变量能过被其他源文件内部使用,是因为全局变量具有外部链接属性

但是被static关键字修饰后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量

函数也是一样的情况

add.c

static int year = 2022;//声明全局变量

test.c(运行报错)

#include <stdio.h>
extern int  year;//使用extern关键字从add.c源文件中声明外部符号的全局变量
int main(){
	printf("%d", year);//会报错
	return 0;
}
————————

Use of extern keyword

Role: declare external symbols (using global variables from other files)

example:

Source file:

test.c

#include <stdio.h>
extern int  year;//使用extern关键字从add.c源文件中声明外部符号的全局变量
int main(){
	printf("%d", year);//打印结果2020
	return 0;
}

add.c

int year = 2022;//声明全局变量

With static keyword

< strong > static modifies a global variable so that it can only be used inside its own source file (. C). Other source files cannot use < / strong >

< strong > global variables can be used internally by other source files because they have the external link attribute < / strong >

< strong > however, after being modified by the static keyword, it becomes an internal link attribute, and other source files cannot be linked to this static global variable < / strong >

The same is true for functions

add.c

static int year = 2022;//声明全局变量

test. C (operation error)

#include <stdio.h>
extern int  year;//使用extern关键字从add.c源文件中声明外部符号的全局变量
int main(){
	printf("%d", year);//会报错
	return 0;
}