-3

在 C (ANSI C) 中,默认情况下所有变量都是自动的,那么 auto 关键字的原因是什么?你能说出使用自动关键字的例子吗?(C++14 除外)。

4

2 回答 2

1

Cauto 关键字中定义了一个局部变量存储类,该存储类从其声明的末尾到其封闭范围(块或函数)的末尾具有本地或有限的生命周期;一旦程序流退出该范围,该变量的实例将不复存在。

例子::

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 回答