【发布时间】:2011-01-30 12:47:25
【问题描述】:
我有一个问题是在一个经常被调用的函数中使用“case”还是“ifs”。 这是现在的以下内容,在“ifs”中;代码不言自明:
int identifyMsg(char* textbuff) {
if (!strcmp(textbuff,"text")) {
return 1;
}
if (!strcmp(textbuff,"name")) {
return 2;
}
if (!strcmp(textbuff,"list")) {
return 3;
}
if (!strcmp(textbuff,"remv")) {
return 4;
}
if (!strcmp(textbuff,"ipad")) {
return 5;
}
if (!strcmp(textbuff,"iprm")) {
return 6;
}
return 0;
}
我的问题是:开关性能会更好吗?我知道如果使用“ifs”,我可以将最有可能的选项放在顶部。
【问题讨论】:
-
在担心微优化之前,您应该专注于使代码正确。一旦它是正确的,你应该在优化之前进行测量。然后,当您认为需要优化时,您应该仔细考虑优化后代码的未来可维护性。简而言之,优化不正确的代码是没有意义的。
标签: c++ if-statement switch-statement optimization