《编写高质量代码:改善c程序代码的125个建议》——建议8-1:定义局部变量时应该省略auto关键字...

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第1章,建议8-1,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议8-1:定义局部变量时应该省略auto关键字

在默认情况下,所有的局部变量都是auto型的变量(也称为自动变量),而且会为这些变量动态分配存储空间,数据则存储在动态存储区中。因此,它的生存期比较短暂:当调用函数时,系统为该函数的自动变量分配内存,等程序从该函数返回,即调用过程结束时,系统就会释放所有该函数的自动变量。这个过程是通过一个堆栈机制实现的,为自动变量分配内存就压栈,当函数返回时则退栈。
需要说明的是,既然自动变量就是指在函数内部定义使用的变量(局部变量),那么也就只允许在定义它的函数内部使用它,在函数外的其他任何地方都不能使用该变量。当然,这也充分说明自动变量没有链接性,因为它不允许其他的文件进行访问。因此,这也就允许我们在这个函数以外的其他任何地方或其他的函数内部定义同名的变量,并且它们之间不会发生任何冲突。虽然这种变量的命名方式不是我们所推荐的,但却是C语言所允许的。
来看一个自动变量的定义示例:

int main(void) 
{  
/*定义整型变量x为自动变量*/
auto int x=0;  
/*定义整型变量y,缺省存储类型时为自动变量*/
int  y=0;     
......
}

在上面的代码中,默认情况下,所有的局部变量都是自动变量,所以说变量x与变量y一样,都是自动变量。因此,我们在声明局部变量时,应该省略auto关键字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值