【发布时间】:2012-04-12 07:11:35
【问题描述】:
可能重复:
Is there any reason to use the 'auto' keyword in C / C++?
我读到了:
int i;
和
auto int i;
是等价的。如果是这样,那么在 C 中使用 auto 关键字有什么用?当 auto 更有用时,是否有任何特殊情况?还是没有auto就无法实现的事情??
【问题讨论】:
标签: c
可能重复:
Is there any reason to use the 'auto' keyword in C / C++?
我读到了:
int i;
和
auto int i;
是等价的。如果是这样,那么在 C 中使用 auto 关键字有什么用?当 auto 更有用时,是否有任何特殊情况?还是没有auto就无法实现的事情??
【问题讨论】:
标签: c
Auto 在 C 中只是隐含的,但由于在实际代码中很少使用(从不读取),它的含义在 C++11 中发生了变化。
Auto 只是指定自动存储,这意味着变量超出范围时会消失。
【讨论】:
来自Wikipedia:
C (称为自动变量。)
默认情况下,在代码块中声明的所有变量都是自动的,但这可以使用 auto 关键字明确表示。
未初始化的自动变量在被赋予其类型的有效值之前具有未定义的值。 使用存储类寄存器而不是 auto 提示编译器将变量缓存在处理器寄存器中。
除了不允许在变量或其任何子组件上使用引用运算符 (&) 之外,编译器可以随意忽略该提示。 在 C++ 中,自动变量的构造函数在执行到达声明位置时被调用。
析构函数在到达给定程序块的末尾时被调用(程序块用大括号括起来)。
此功能通常用于管理资源分配和释放,例如打开然后自动关闭文件或释放内存。请参阅 RAII。
【讨论】:
auto 现在指定类型推断。