C语言中的extern关键字

走远了吗. 提交于 2019-11-29 19:27:11

概述

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;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!