J C*_*ins 2 c c++ if-statement
我最近从模型中读取了MATLAB/Real Time Workshop自动生成的一些代码,并且读取whiat似乎是使用某些代码的一个非常奇怪的理由:
if (u <= x[bottom]) {
retValue = bottom;
returnStatus = 1U;
} else if (u >= x[top]) {
retValue = top-1;
returnStatus = 1U;
} else {
/* else required to ensure safe programming, even *
* if it's expected that it will never be reached */
}
Run Code Online (Sandbox Code Playgroud)
似乎编码器通过称之为'安全编程'来证明最后有一个空的'else'语句是合理的.除非有一些模糊的内存管理原因,否则包含它似乎是一件非常不必要的事情.
出于什么原因可以在那里?
编辑:
我找到了完整的源代码,它实际上不是自动生成的,而是从rt_look.c复制的:
考虑到您提供的案例,何时无法访问代码块.我同意Shabaz的说法,因为它会使代码混淆.如果我在没有问题或主题的情况下阅读了代码,我会想知道我错过了什么.这是如果你期望的代码更改部分的调试非常有用......但我认为一个好的老assert()
做一样好.为了回答你的问题,我不认为一个空的其他声明可以用于任何目的.