即使前一行导致退出,也使用break语句

时间:2010-07-06 21:24:28

标签: programming-languages readability

我正在阅读一些代码(C,如果它对任何人有所影响),并且对切换块感到好奇。

switch (c_type) {
case -1:
    some_function(some_var);
    break;
[...]
default:
    abort();
}

现在,这是一个非常简单的开关块。这是some_function(some_var) - 我很好奇的电话:如果你,程序员,绝对的,积极的,超级的,确保调用会导致进程退出,你是否仍然把断言声明放在下面这是完全没必要的?你会说这是最好的做法吗?

4 个答案:

答案 0 :(得分:8)

我认为最好的做法是在函数调用下方弹出assert()。这有两个目的:它记录了运行时中的这一点应该无法访问的事实,如果代码以某种方式 到达那个位置,它会产生错误消息。

答案 1 :(得分:2)

在那里休息。 确定的是什么并不重要:你为其他人编写你的程序来阅读,并且中断表明给定的案例与后面的案例是完全分开的。

即使您今天对此代码非常肯定,规范明天也可能会发生变化,some_function将不再退出。规格中没有任何东西是确定的(根据我的经验)。

答案 2 :(得分:2)

如果我是超级 - 超级 - 确定调用会导致进程退出,我会为此坚持一个断言。

这样一来,如果有人修改了这个函数并且它并不总是终止,那么这个bug几乎会在它第一次出现时被捕获。

编辑:殴打,也有同样的答案:/

答案 3 :(得分:0)

除非你想让它落到下一个案例陈述中,否则最好的做法是结束每个案例陈述。