我是靠谱客的博主 积极世界,最近开发中收集的这篇文章主要介绍变量的关键字,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

auto变量:
函数内部无static声明的局部变量均为动态存储类别,被分配在动态区;
存储类别为自动时,声明符auto可省略;
自动变量被分配在动态区,未赋值时,其值未定义,每次调用重新赋值。
用static声明局部变量
对静态局部变量的说明:
(1)分配在静态区,程序运结束释放存储单元。
(2)赋初值时为0,前次结果保留
(3)局部动态变量若未赋初值,其值不确定,局部静态变量未赋初值,其值为0或''(字符变量)
(4)静态局部变量在函数调用结束后虽存在,但是其他函数不能引用他。
register(寄存器型)变量
CPU内有寄存器可用来存放数据,若把数据声明为寄存器类型,则将该类型的数据存放在寄存器中.
其优点:
减少数据与内存之间的交换怕频率,提高程序的效率和速度。

long fac(long n)
{
register long i,f=1;
for(i=1;i<=n;i++)
f=f*i;
return (f);
}

寄存器类型变量的几点说明:
1.局部自动变量类型和形参可定义为寄存器变量;
2.不同c系统对寄存器的使用个数,对register变量的处理方法不同,对寄存器变量的数据类型有限制。
3.局部静态变量不能定义为寄存器变量。
4.long,double,float不能设为register型,因为超过寄存器长度
用extern声明外部变量
外部变量也称全局变量,在函数外部定义,其作用域是从变量的定义处开始,到本程序文件的末尾,在定义的作用于内,全局变量可为程序中各个函数所引用。
范围:
1.如果一个程序由多个文件组成,而一个外部变量需要在几个文件中引用,此时,可以在任一文件定义该外部变量在其他文件中用extern加以声明
2.若在每个文件中都定义该外部变量,则系统将提示“重定义类型错”
用static声明外部变量
1.如果外部变量值允许本文件使用,不允许其他文件引用,则定义时加static声明,称为“静态外部变量”
2.只在工程方法中有效,在文件包含中则不起作用
3.常用于多人编同一程序,又使用同名变量时
4.加或不加static声明的外部变量都是静态存储,但是其作用域不同
关于变量的声明和定义
函数:由“声明部分”和“执行语句”组成
声明部分:
对有关的标识符(变量,函数,结构体)的属性进行说明,对于函数,声明和定义区别明显,声明是函数原型,定义是函数本身,是一个独立的程序模块。
变量的声明有两种情况:
1.定义性声明:需建立存储空间,如int a;也称定义。
2.引用性声明:不建立存储空间,如extern A
3.外部变量“定义性声明”只能一次,“引用性声明”多次。广义地讲,声明包括定义,但是并非所有的声明都是定义;

如:

intA;//既包括声明又包括定义

externA;//只是声明,而无定义。
约定:
建立存储空间的声明称定义;
不建立存储空间的声明称声明。
static定义性声明变量作用二个:
1.局部变量用static定义性声明,分配的存储空间在程序执行期间始终存在,但作用域只限
定义他的函数或分程序。
2.全局变量用static定义性声明,变量的作用域仅限本文件模块。
3.Auto,register,static是在定义变量的基础上加上这些关键字,不能 单独作用。

最后

以上就是积极世界为你收集整理的变量的关键字的全部内容,希望文章能够帮你解决变量的关键字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部