在C(ANSI C)中,默认情况下所有变量都是自动的,那么auto关键字的原因是什么?你能举出使用auto关键字的例子吗? (C ++ 14除外)。
答案 0 :(得分:1)
在C
中,auto关键字定义一个局部变量存储类,它的声明从其声明的末尾到其封闭作用域的末尾(块或函数)具有本地或有限的生命周期;一旦程序流退出该范围,该变量的实例就不再存在。
实施例::
Auto [data_type] [variable_name];
所以这两个:
auto int var;
int var;
这两个声明具有相同的含义。由于auto关键字是局部生命周期是局部变量的默认值,因此auto关键字极少使用它只对编译器编写者或解释器开发人员在符号表中创建条目或更好的可读性auto关键字有意义。 Auto关键字表示此存储在进入块时自动分配(与全局静态分配或堆上的动态分配相反)。
答案 1 :(得分:0)
默认情况下,所有变量不 auto
;例如,在文件范围内声明的任何内容都是static
。
auto
关键字是来自BCPL和B语言的保留,从中派生出C语言。在这一点上它很大程度上是退化的,但同样的道理它并没有造成任何伤害,所以也没有理由摆脱它。