我以为这些术语是同义的,但米斯拉中关于死代码的注释表明这是错误的吗?有什么关系呢?其中一个是另一个的子集吗?
发布于 2014-04-02 06:02:58
死代码-执行但冗余的代码,结果要么从未被使用,要么没有向程序的其余部分添加任何内容。浪费CPU性能。
function(){
// dead code since it's calculated but not saved or used anywhere
a + b;
}不可达代码-无论逻辑流如何,这些代码都是永远不会到达的。区别是它没有被执行。
function(){
return x;
// unreachable since returned
a = b + c;
}发布于 2014-04-02 06:00:30
死码
执行没有效果的函数的代码。从根本上说,如果去掉这些东西就不会有什么区别了。
不可达代码
由于其他逻辑而产生的代码永远不会被执行。这通常是错误的标志。
发布于 2015-02-25 13:31:59
不可达代码
控制流从不允许在程序执行期间输入的代码。这是无法到达的代码,即在程序执行过程中从未执行过的代码。
死码
具有的代码对后面的代码没有任何影响,无论控制流如何通过程序。这是死气沉沉的代码,在程序执行过程中不需要执行不需要执行的代码,或者用其他术语来说,这些代码是无用的。
所以,从真实的角度来说,它们都不是另一个的子集。但是,作为代码优化的一部分,编译器在编译过程中通常会删除不可访问的代码和死代码。
https://stackoverflow.com/questions/22802698
复制相似问题