【问题标题】:variable auto in C [duplicate]C中的变量auto [重复]
【发布时间】: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


    【解决方案1】:

    Auto 在 C 中只是隐含的,但由于在实际代码中很少使用(从不读取),它的含义在 C++11 中发生了变化。

    Auto 只是指定自动存储,这意味着变量超出范围时会消失。

    【讨论】:

      【解决方案2】:

      来自Wikipedia

      C (称为自动变量。)

      默认情况下,在代码块中声明的所有变量都是自动的,但这可以使用 auto 关键字明确表示。

      未初始化的自动变量在被赋予其类型的有效值之前具有未定义的值。 使用存储类寄存器而不是 auto 提示编译器将变量缓存在处理器寄存器中。

      除了不允许在变量或其任何子组件上使用引用运算符 (&) 之外,编译器可以随意忽略该提示。 在 C++ 中,自动变量的构造函数在执行到达声明位置时被调用。

      析构函数在到达给定程序块的末尾时被调用(程序块用大括号括起来)。

      此功能通常用于管理资源分配和释放,例如打开然后自动关闭文件或释放内存。请参阅 RAII。

      【讨论】:

      • 这不再是完全准确的,至少对于 C++11 来说是这样。 auto 现在指定类型推断。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 2021-08-30
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多