extern 关键字
extern 用在全局变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用。
什么是定义,什么是声明?
什么是定义:所谓的定义就是为这个变量分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名。但注意,这个名字一旦和这块内存匹配起来,它们就同生共死,终生不离不弃,并且这块内存的位置也不能被改变。一个变量在一定的区域内(比如函数内,全局等)只能被定义一次,如果定义多次,编译器会提示你重复定义同一个变量或对象。
什么是声明: 有两重含义,如下:
第一重含义: 告诉编译器,这个名字已经匹配到一块内存上了。
第二重含义: 告诉编译器,我这个名字我先预定了,别的地方再也不能用它来作为变量名。记住,定义和声明最重要的区别: 定义创建了对象并为这个对象一块内存,而声明的时候是没有分配内存空间的。
声明是不开辟内存的,定义是开辟内存的。
文章来源地址https://www.toymoban.com/news/detail-469072.html
外部变量(全局变量)extern----全局静态存储区
标准定义格式:extern 类型名 变量名;
extern int i; //是声明,不是定义,没有分配内存 int i; //是定义
示例1:
extern 可以声明一个变量,使得该变量是来自其他文件的变量在本文件可以被访问。
比如:创建两个文件 test.c 和 main.c文件;
在test.c文件中定义一个全局变量:
//test.c
int i = 20; //定义一个全局变量
在main.c文件,声明变量 i;
main.c文件
# include<stdio.h>
extern int i; //声明变量i,当编译链接时候,main.c文件就可以访问到test.c文件的i的值了;
int main()
{
printf("%d",i);
return 0;
}
这样我们就可以跨文件(test.c),在本文件(main.c)访问这个变量了;
示例2:
示例三:
文章来源:https://www.toymoban.com/news/detail-469072.html
到了这里,关于C语言-外部关键字extern的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!