关键字自动默认为哪种类型

Which type does keyword auto default to?

本文关键字:种类 类型 默认 关键字      更新时间:2023-10-16

目前正在尝试让我的头脑绕过C++11,并且刚刚发现了auto关键字。

我想知道使用 auto 时,它会默认为给定某些值的类型。

例如,整数值为 65535,它会默认为无符号 int、有符号 int、无符号短整型等吗?还是它只是保持自动状态,不需要默认为任何东西?

任何帮助不胜感激

它不会"默认"任何内容。 根据定义,65535是一个int,所以在这种情况下auto int。例如,如果你做了65535L,那么它是一个longauto将是一个long

请注意,以上考虑的是"典型"系统。如果65535对于int来说太大(也许可能是因为int在这个其他系统上是 16 位),编译器会给它一个更大的类型,以便65535它"适合"到它自己的数据类型中,(在本例中为 long ),在这种情况下,auto变得long。关于整数文字类型的确切规则在标准的第2.14.2节中给出(感谢Benjamin Lindley和James Kanze)。然而,要记住的重要部分是,对于事物的类型有具体、明确的规则,因此auto永远不必猜测或"默认"任何东西。