r******l 发帖数: 10760 | 1 方法一:
if (A) {
if (B) {
func1();
} else {
func2();
}
} else {
if (B) {
func2();
} else {
func1();
}
}
方法二:
if (A==B) {
func1();
} else {
func2();
}
方法一更容易理解,方法二是否能快很多?现代的C++或Java编译器能自动优化方法一
么? |
p***o 发帖数: 1252 | 2 方法二容易理解, 你不觉得方法一看着眼花吗?
【在 r******l 的大作中提到】 : 方法一: : if (A) { : if (B) { : func1(); : } else { : func2(); : } : } else { : if (B) { : func2();
|
r******l 发帖数: 10760 | 3 我的实际程序里面A和B是两个完全不相干的东西,硬要比较A和B是否相比较奇怪。
【在 p***o 的大作中提到】 : 方法二容易理解, 你不觉得方法一看着眼花吗?
|
g*****g 发帖数: 34805 | 4 这个容易,写成容易理解的 (A && B) || (!A && !B)
【在 r******l 的大作中提到】 : 我的实际程序里面A和B是两个完全不相干的东西,硬要比较A和B是否相比较奇怪。
|
f*******t 发帖数: 7549 | 5 if (A ^ B) {
func2()
} else {
func1()
}
A和B是典型的异或关系,为啥说它们完全不相干? |
r******l 发帖数: 10760 | 6 AB都是有语意的啊。打个比方,A表示白天或黑夜,B表示狗或者猫。不论用==还是用
^都比较奇怪。还是goodbug的方法更好。
【在 f*******t 的大作中提到】 : if (A ^ B) { : func2() : } else { : func1() : } : A和B是典型的异或关系,为啥说它们完全不相干?
|