【发布时间】:2021-03-04 03:14:05
【问题描述】:
代码 X:
float result;
int a, b;
result = (float)a + (float)b;
代码 Y:
float result, a, b;
result = a + b;
哪种代码最快且使用的资源更少?
【问题讨论】:
-
差别很小,你可以忽略它。
-
这两个代码做不同的事情。尽管变量未初始化,但两者都有未定义的行为。
-
这个问题没有上下文是没有意义的。在任何一种情况下,
a或b之前都必须被赋予一些值。因此,有一个先前的代码,在一种情况下,与int一起为a和b生成int值,在另一种情况下,与float一起为@ 生成float值987654331@ 和b。因此,使用 Code X 或 Code Y 的两个程序之间的差异不仅仅是 Code X 或 Code Y,因此它们执行的时间差异不仅仅是由于 Code X 或 Code Y。回答哪个更快必须取决于在程序的其他部分也是如此。 -
@EugeneSh.:在其他代码之前显示声明是显示变量类型的常见约定,并不意味着程序中的代码实际上只包含那些紧跟在显示的其他代码之后的声明。你现在应该知道了。
标签: c performance math optimization