auto abc = 5566;
据我所知,编译器知道abc
是int
在编译时,所以它不会影响运行时性能。
但是,它会使编译时间更长吗?
提前致谢。
auto
比 长一个字符int
,所以词法分析器肯定需要做更多的工作。
另一方面,编译器不再需要检查用户是否提供了适当的类型,所以我最好的猜测是这auto
会稍微快一些。
最后,您可能不应该基于性能考虑在类型推断和显式类型之间做出决定。意图和清晰度应该是决定因素。
它可能会,也可能不会,这取决于编译器。当然,这不是标准强制要求的。
由于词法分析器知道5566
无论如何的类型,它很可能在很大程度上是不相关的。
您最好不要担心算法和数据结构选择等更多“宏观”问题。与担心自动类型选择是否更快相比,您几乎肯定会获得更好的投资回报。
使用auto
创建变量与其说是关于性能,不如说是为了让你作为编码员的生活更轻松。
与编译时一样,编译器无论如何都必须检查类型,我认为用编译器发现的类型替换 auto 不会花费更多时间。
如果您想了解更多信息:C++ 11 自动编译时间还是运行时?
如果您想知道是否应该使用 auto:C++11 auto 关键字是多少?