【发布时间】:2020-08-01 18:13:57
【问题描述】:
什么会更有效率?
伪代码:
void function(x) {
if (x == arg1) {
execute while loop here
}
else if (x == arg2) {
execute different version of while loop here
}
else..
}
或
void function(x) {
while (valid) {
if (x == arg1) {
logic here..
}
else if (x == arg2) {
logic here..
}
else..
}
}
或者将while循环分割成函数会更好吗?
【问题讨论】:
-
你可以试试https://godbolt.org/ 并有一个想法。我不认为你的问题有答案。这取决于逻辑、输入数据、输入元素的频率、编译器优化等。
-
我相信对于大多数具有适当优化标志和不完整任务的现代编译器来说,这应该无关紧要。但我更喜欢第一个版本或单独的功能版本。
-
错误的问题,而是询问哪种方式更直接地安排代码。把优化留给编译器,除非你能证明编译器需要一些帮助。
-
测量它!其他一切都是货物崇拜编程。
-
源代码是对可观察行为的描述,而不是要执行的指令列表。编译器提供指令列表,以及编译器可以对您的代码执行的任何操作,以使其在不破坏所描述行为的情况下更快,it will do。
标签: c++ loops while-loop