extern关键字的作用_C语言作用域的理解

d85f1c95e9ba6c62ccdded9b49548b48.png

文章logo

一:作用域的概念

通俗的讲是全局变量和局部变量的区别,对于在函数开头声明的自动变量(局部变量)来说,其作用域是声明该变量名的函数。不同函数中声明的具有相同名字的各个局部变量之间没有任何关系。

外部变量(全局变量)从声明它的地方开始,待其所在的文件的末尾结束。

1、对于定义的外部变量之前使用该变量的情况

例如:

main() {.....}

int sp=0;

double val[MAXVAL];

void push(double f) {.....}

double pop(void) {.....}

对于外部变量sp、val 函数push、pop来说,不需要任何声明就可以通过名字访问变量。但是对于main函数就需要对变量sp、val进行extern的强制声明。

2. 对于不同源文件对外部变量的使用情况

例如:

在文件file1中定义:

int sp=0;

double val[MAXVAL];

那么在文件file2中需要用强制关键字定义extern

extern int sp=0;

extern double val[MAXVAL];

void push(double f) {.....}

double pop(void) {.....}

3. 变量声明和变量定义的区别

变量声明用于说明变量的属性,而变量定义除了说明变量的属性外,还要分配内存空间。

对于int sp=0; double val[MAXVAL];是要分配内存空间地址的

对于extern int sp=0; extern double val[MAXVAL];仅仅声明不分配内存空间地址的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值