gpt4 book ai didi

c - 在下面的伪 C 代码片段中避免重复代码的方法应该是什么?

转载 作者:太空狗 更新时间:2023-10-29 15:15:57 26 4
gpt4 key购买 nike

if(var == something) {
A();
B();
} else if(var == something_else) {
A();
B();
C();
} else {
assert(false);
}

如何避免在 if 两种情况下调用 A() 和 B() 的重复代码。我应该使用 switch case 吗,

switch(var) {
case something:
case something_else:
A();
B();
break;
}
if (var == something_else)
C():

什么是更好的解决方案? switchif else 有任何性能损失吗?

最佳答案

if (var == something || var == something_else) {
A();
B();
}

if (var == something_else) {
C();
}

如果你还需要else,你可以这样做:

if (var == something || var == something_else) {
A();
B();

if (var == something_else) {
C();
}
} else {
assert(false);
}

关于你的问题,

Is there any performance penalty in switch vs if else?

请阅读这个问题的答案:

Is 'switch' faster than 'if'?

简而言之,通常不会有任何明显的差异。所以你应该在编写代码时考虑到可读性。在 if/elseswitch 之间,选择更自然的。

关于c - 在下面的伪 C 代码片段中避免重复代码的方法应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33233384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com