首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“死代码”和“无法到达的代码”有什么区别?

“死代码”和“无法到达的代码”有什么区别?
EN

Stack Overflow用户
提问于 2014-04-02 05:58:13
回答 4查看 14.5K关注 0票数 22

我以为这些术语是同义的,但米斯拉中关于死代码的注释表明这是错误的吗?有什么关系呢?其中一个是另一个的子集吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-02 06:02:58

死代码-执行但冗余的代码,结果要么从未被使用,要么没有向程序的其余部分添加任何内容。浪费CPU性能。

代码语言:javascript
运行
复制
function(){
    // dead code since it's calculated but not saved or used anywhere
    a + b;
}

不可达代码-无论逻辑流如何,这些代码都是永远不会到达的。区别是它没有被执行。

代码语言:javascript
运行
复制
function(){
    return x;

    // unreachable since returned
    a = b + c;
}
票数 42
EN

Stack Overflow用户

发布于 2014-04-02 06:00:30

死码

执行没有效果的函数的代码。从根本上说,如果去掉这些东西就不会有什么区别了。

不可达代码

由于其他逻辑而产生的代码永远不会被执行。这通常是错误的标志。

票数 4
EN

Stack Overflow用户

发布于 2015-02-25 13:31:59

不可达代码

控制流从不允许在程序执行期间输入的代码。这是无法到达的代码,即在程序执行过程中从未执行过的代码。

死码

具有的代码对后面的代码没有任何影响,无论控制流如何通过程序。这是死气沉沉的代码,在程序执行过程中不需要执行不需要执行的代码,或者用其他术语来说,这些代码是无用的。

所以,从真实的角度来说,它们都不是另一个的子集。但是,作为代码优化的一部分,编译器在编译过程中通常会删除不可访问的代码和死代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22802698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档