gpt4 book ai didi

case - Ada Case Statement 在 C 中表现得像什么?

转载 作者:行者123 更新时间:2023-12-04 16:30:57 27 4
gpt4 key购买 nike

当您使用 Ada case 语句时,每个 case 都会自动中断。在 C(或其他语言)中,此中断不会自动完成,并且会执行真正的中断之后的所有情况。在 Ada 或解决方法中是否也有这种行为?

最佳答案

艾达永远不会有这样的行为!

唯一合理的解决方法是采用重复的代码部分,将其放入(本地)过程中,并在需要时调用它。

Ada 的 case 语句是这样的原因是 C 风格很容易忘记 break (为故意省略添加 /* FALLTHROUGH */ 注释并不能真正使代码更易于阅读 - 未注释的省略是否是错误?您需要阅读多少周围的代码才能确定?)。

在 MISRA C( here ,例如)第 60 页底部附近的规则 15.2 中说

An unconditional break statement shall terminate every non-empty switch clause.



而打算面向类似市场的 Ada 也采取了相同的立场。

大多数情况下,只需要一项行动的多种选择:
case K is
when 1 | 5 | 10 .. 20 =>
Action_1;
when 3 =>
Action_2;
...
end case;

关于case - Ada Case Statement 在 C 中表现得像什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075311/

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