c - C语言中有没有办法检查return后的语句?

标签 c

此代码可以在 C: 中编译

#include <stdio.h>

int main()
{
    printf("Hello World");
    return 0;
    
    printf("shouldnt allow this line");
    return 1; //also this line
}

线路printf("shouldnt allow this line");return 1;无法到达。有没有什么方法可以在编译过程中通过警告消息来检查这一点?另外,为什么编译器允许这样做?

最佳答案

无法访问的代码不是错误,因为:

  1. 它通常很有用,特别是作为宏扩展或函数的结果,这些宏扩展或函数仅以某种方式调用,由于某些参数是常量或仅限于特定范围而导致某些路径无法访问。例如,对于仅使用非负参数调用的 isdigit 内联版本,EOF 参数的代码路径将无法访问。

    <
  2. 一般来说,判断代码是否不可达相当于停机问题。当然,像您这样的某些情况很容易确定,但您无法指定“无法访问代码的平凡情况是错误,但重要情况则不是”之类的内容。

关于c - C语言中有没有办法检查return后的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503735/

相关文章:

c - 在c中使用指针创建数组

chdir() - 没有这样的文件或目录

c - 如何显示一组数据文件处理C

c - C编程中如何检查输入是否等于预设值?

c - 如何修复语言环境?

c - malloc 二维数组时出现问题

c - 微软C库_beginthreadex

c - malloc 返回的内存地址是否总是可以通过指向另一种类型的指针互换?

c - 如何正确动态分配内存?

c - Pthread 参数