C语言extern关键字
1.使用场景有两种情况
一种是对变量而言,另一种是对函数而言
1): 对变量而言
变量的声明有两种情况:一 是需要建立存储空间的,不用加extern;另外一种是不需要建立存储空间的,需要加extern。
如果想在本源文件中使用另外一个源文件的变量,就需要在使用前用 extern声明该变
量,或者在头文件中用extern声明该变量
2):对函数而言
对函数而言,如果想在本源文件中使用另一个源文件的函数,就需要在使用前对函数进行
声明,声明函数加不加extern都没关系,所以在文件中函数不用加extern。
2.注意事项
-
全局变量: 当你要引用一个全局变量时,extern关键词必须不能忘, 如果变量无 extern 修饰且没有显式的初始化,同样也变成了变量的定义,因此全局 变量在外部使用时,声明必须使用extern,如不加extern,编译器 在此标记存储空间,在执行时加载内存并初始化为0。注意以下几种全局变 量:
int a ;//定义一个全局变量a
extern int a ;//声明一个全局变量a
int a = 3;//定义一个全局变量并初始化为3
extern int a = 3;//定义一个全局变量并初始化为3
/******************************************************************
*举例验证全局变量被编译器初始化为0
******************************************************************/
#include <stdio.h>
int a;