gpt4 book ai didi

c - 通过调用不打算返回的函数来退出 switch 语句是良好的编码习惯吗

转载 作者:行者123 更新时间:2023-11-30 16:14:44 24 4
gpt4 key购买 nike

C新手问题。我继承了使用 switch 语句调用函数作为退出 switch 的方式的 C 代码。被调用的函数不会返回到 switch 语句,除非存在 POR 或访问冲突。切换后的代码是一个 while(1){} 循环,以防止代码跑掉(我猜)。

这是好的编码习惯吗?看来如果下游代码继续使用函数进行分支,它会使堆栈变得困惑。当之后不打算返回时,是否有更好的方法来中断 switch 语句?

代码有效。然而,在网站示例代码中,switch 语句通常嵌入在 while(1) 循环中,目的是让函数返回到 switch 语句。

switch(SYSRSTIV)
{
case SYSRST_NMIRST:
reset_funtion(); //initialize hardware
do_something1();
break;
case SYSRST_WDTPW:
pw_violation(); //Watchdog violation
do_something2();
break;
case SYSRST_BOR:
do_something3(); //normal operation
break;
default:
do_something3();
}


while(1){ //trap if fall through
set_error_flag();

}
}

最佳答案

只要您不递归地到达这个 switch 语句并创建无限递归,就可以了。 switch 语句没有什么特别之处,为什么你不能从中调用无限循环。

尽管有一个主循环并在每次迭代中运行开关可能会产生更容易理解的代码。

关于c - 通过调用不打算返回的函数来退出 switch 语句是良好的编码习惯吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57450183/

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