(C) 如果我有一个包含 if which 的函数,如果条件为真,则可以返回某个值,然后 else 返回不同的值。使用 else 或不打扰是或多或少有效吗?
IE ...
int foo (int a) {
if ((a > 0) && (a < SOME_LIMIT)) {
b = a //maybe b is some global or something
return 0;
} else {
return 1;
}
return 0;
}
要不就
int foo (int a) {
if ((a > 0) && (a < SOME_LIMIT)) {
b = a //maybe b is some global or something
return 0;
}
return 1;
}
假设 GCC,第一个实现会导致编译后的代码与第二个不同吗?
我需要在这里尽可能高效,因此可能减少 else 的分支会很好 - 但从风格上讲,我内心的强迫症不喜欢看到返回不是 0 或 void 作为函数中的最后一条指令不太清楚发生了什么。因此,如果无论如何它都会被删除,那么我可以将 else 留在那里......