gpt4 book ai didi

c - 在 Switch-Case 构造中使用 'return' 与 'break' 有什么好处?

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:03 45 4
gpt4 key购买 nike

我正在研究一个 32 位 MCU 的代码,我在其中看到一个 Switch-case 结构,它只在每个 case 中使用“return”而不是通常的“break”语句。这样做有什么好处?

通常所有的 Switch-case 语句都使用 break 来退出。但是,如果使用“return”而不是“break”,它会提供更快的代码还是更小的代码,或者以这种方式进行的其他一些好处?

switch (adv_mode)
{
case BLE_ADV_MODE_DIRECTED_HIGH_DUTY:
if ( (p_advertising->adv_modes_config.ble_adv_directed_high_duty_enabled)
&& (!p_advertising->adv_modes_config.ble_adv_extended_enabled)
&& (peer_addr_is_valid))
{
return BLE_ADV_MODE_DIRECTED_HIGH_DUTY;
}
// Fallthrough.

case BLE_ADV_MODE_DIRECTED:
if ((p_advertising->adv_modes_config.ble_adv_directed_enabled) && peer_addr_is_valid)
{
return BLE_ADV_MODE_DIRECTED;
}
// Fallthrough.

case BLE_ADV_MODE_FAST:
if (p_advertising->adv_modes_config.ble_adv_fast_enabled)
{
return BLE_ADV_MODE_FAST;
}
// Fallthrough.

case BLE_ADV_MODE_SLOW:
if (p_advertising->adv_modes_config.ble_adv_slow_enabled)
{
return BLE_ADV_MODE_SLOW;
}
// Fallthrough.

default:
return BLE_ADV_MODE_IDLE;
}

我希望位“return”和“break”会产生相同的结果。所以这只是程序员使用的偏好。

最佳答案

return 离开 switch 所在的函数并跳回其调用者。

break 只留下 switch 和它之后的下一条语句将被执行。

在所示情况下,函数返回某种模式。如果使用了 break,则必须在函数结束时设置并返回此结果的变量。有时开发人员会觉得写起来太多了。

关于c - 在 Switch-Case 构造中使用 'return' 与 'break' 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513353/

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