【发布时间】:2018-04-18 09:41:23
【问题描述】:
最近,我在我的 CS 研究中获得了一个代码示例(参见代码 #1),我尝试了解我的第二版代码是否会更快或使用更少的内存。 你对我的问题有答案吗?
// Code #1
double f(double b, double x)
{
double s;
if (x == 0.0)
s = 1.0;
else
s = sin(x)/x;
return s + b;
}
// Code #2
double f(double b, double x)
{
// I thought this would be faster and using less memory due to
// not declaring a new double
if (x == 0.0)
return 1.0 + b;
else
return sin(x)/x + b;
}
谢谢你们的帮助。
【问题讨论】:
-
c++不是c,请只选择一个标签,这样才能得到你需要的答案
-
除非您使用的编译器是 ****,否则它们可能会被优化为相同的代码。您可以随时拆卸并亲自查看。从理论上讲,第二个可能会更快,只是在实践中可能不会。
-
没有区别。编译器可以轻松进行这样的转换。无论如何
sin(x)将花费最多的时间。 -
@George - 几乎 相同的代码 (demo)
-
@HB - 这与代码审查无关。不要虚假地建议它。
标签: c performance memory