《编写高质量代码:改善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关键字。

相关文章
|
6月前
|
缓存 监控 程序员
Python中的装饰器是一种特殊类型的声明,它允许程序员在不修改原有函数或类代码的基础上,通过在函数定义前添加额外的逻辑来增强或修改其行为。
【6月更文挑战第30天】Python装饰器是无侵入性地增强函数行为的工具,它们是接收函数并返回新函数的可调用对象。通过`@decorator`语法,可以在不修改原函数代码的情况下,添加如日志、性能监控等功能。装饰器促进代码复用、模块化,并保持源代码整洁。例如,`timer_decorator`能测量函数运行时间,展示其灵活性。
51 0
|
6月前
|
Dart
Dart编程入门:main方法、变量、常量和注释
Dart编程入门:main方法、变量、常量和注释
|
C语言
C语言——(基础知识) 变量的作用域和生命周期 and 注释
C语言——(基础知识) 变量的作用域和生命周期 and 注释
99 0