概述
extern关键字可以被用于修饰C变量和函数,他扩展变量和函数的可见性。
变量/函数的声明(declaration)与定义(definition)
声明(declaration):变量/函数的声明只是宣布变量/函数存在于程序的某个地方,但是还没有为它们分配内存。当一个变量被声明,程序就会知道那个变量的数据类型。当一个函数被声明,程序就会知道函数的参数类型、参数顺序以及返回类型。
定义(definition):定义一个变量/函数时,除了声明,还会为变量/函数分配内存。可以认为定义是声明的超集。
从上面的解释可以看到,变量/函数可以被声明多次,但只能被定义一次。
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
extern关键字
extern关键字与函数
默认情况下,C函数的声明和定义会被自动加上extern。例如,当我们写如下代码
int foo(int arg1, char arg2);
编译器会看到
extern int foo(int arg1, char arg2);
由于可以声明多次,但只能定义一次,我们可以发现一个函数的声明可以在多个C/H或一个C/H中出现添加多次,但它的定义只会出现一次。
由于extern将函数的可见性扩展到整个程序。
extern关键字与变量
声明而不定义一个变量
extern int var;
定义一个变量
int var;
来源:https://blog.csdn.net/sjt091110317/article/details/100898922