【发布时间】:2020-10-25 09:43:58
【问题描述】:
是
if(a == 0 && b == 0 && c == 0) { return; }
同
if(a == 0) { return; }
if(b == 0) { return; }
if(c == 0) { return; }
或
if(a == 0) { return; }
else if(b == 0) { return; }
else if(c == 0) { return; }
我想编写快速代码,并且对这些语句通常解释为汇编指令的不同之处感兴趣。
【问题讨论】:
-
第二个和第三个是等价的,相当于
if(a == 0 || b == 0 || c == 0) { return; }。如果三个中的任何一个为零,则它们返回,而当三个都为零时,第一个返回。 -
你在进行微优化,不要那样做。专注于编写好的、干净、可读和可维护的代码。首先也是最重要的。然后,如果程序不能满足您的要求,您可以测量、基准测试和配置文件以找到前两个(或可能三个)瓶颈,并努力优化它们(使用 大量 文档和 cmets)。我怀疑即使是前十名也不会出现这种情况。
-
哦,在进行基准测试和测量时,始终启用优化。
-
@orORorOR -- 如前所述,如果您的程序使用低效的算法、循环等,查看小的
if语句对程序速度没有任何帮助。如果您有一个三重嵌套的for循环在某个地方,循环一百万次,当您可以使用不同的数据结构时,对项目进行预排序等等,从而减少时间,这比尝试优化if语句更值得。
标签: c++ c performance