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