c - 在 Else-If 构造中使用最后一个 else 语句

标签 c

在《The C programming language》一书中写道,else-if 构造中的最后一个 else 语句可用于错误检查以捕获不可能的条件。

谁能为此提供一个简单的例子?

最佳答案

这里的“Impossible”意思是“不应该发生”,而不是字面上的“不可能发生”,检查后者显然毫无意义。换句话说,您认为您编写的代码使得变量在给定时间只能具有值123,然后编写 if 语句来处理它们,然后添加最后的 else 子句来吸引您的注意力,因此如果您错了,并且您的代码并不像您想象的那样无懈可击,那么您将能够看到,并且错误不会逃过您的注意。

例如:

if ( val == 1 ) {
    /* Do something normal */
} else if ( val == 2 ) {
    /* Do something else normal */
} else if ( val == 3 ) {
    /* Do something else else normal */
} else {

    /*  We shouldn't get here, but just in case we do... */

    printf("ERROR - val has an unexpected value!\n");
    exit(EXIT_FAILURE);
}

关于c - 在 Else-If 构造中使用最后一个 else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660311/

相关文章:

c - 乘以混合数据类型时,float 是否总是自动转换为 double?

c# - C 中的 allocVector() 和 System.AccessViolationException : Attempted to read or write protected memory?

python - 从 Python 运行 C 程序,然后捕获输出

c++ - cvCaptureFromFile-从特定路径打开视频-Raspberry Pi

c - C 中的隐式函数声明实际上会生成目标代码吗?

c - gcc 的大数组声明及其问题

c - 将代码从 32 位更改为 64 位后,将指针从 Microsoft Visual C++ 传递到 Fortran 并返回

c++ - 打印给定列和行约束的交替 X 和 O 矩阵?

c - 用于转义字符串的标准 C 库

c++ - C 和 C++ 中的多字 rune 字