我認爲這些術語在哪裏是同義詞,但MISRA中有關死代碼的註釋表明這是錯誤的?有什麼不同?一個是另一個的子集嗎?「死碼」和「不可達碼」有什麼區別?
7
A
回答
19
死代碼 - 執行但冗餘的代碼,或者結果從未使用過,或者對程序的其餘部分沒有增加任何內容。浪費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;
}
4
執行的是沒有任何效果的功能死代碼
代碼。基本上這些東西如果被移除就不會有所作爲。的是,由於其他邏輯將永遠不會被執行
不到的代碼
代碼。這通常是錯誤的標誌。
3
可達代碼
的代碼,其控制流從未該程序的執行過程中進入。這是無法到達的代碼是在程序執行過程中,從未執行的代碼。
死代碼
具有上下面的它不管控制流如何流過程序代碼沒有影響的代碼。那就是死代碼就是那個代碼,那個不需要執行在程序執行過程中,或者換句話說,是沒用的。
所以,真的,他們都不是另一個的子集。但編譯過程中,編譯器通常會將無法訪問的代碼和死代碼作爲代碼優化的一部分刪除。
1
無法訪問的代碼是永遠不會執行的,因爲沒有流量控制來達到代碼。
A 死代碼是得到(或可能得到)執行的東西,但其結果從不使用。
相關問題
- 1. 編譯代碼和可執行代碼有什麼區別?
- 2. 代碼有什麼區別
- 3. 代碼和程序有什麼區別?
- 4. IND和NAN號碼有什麼區別
- 5. 崩潰和死機有什麼區別?
- 6. 編碼/解碼有什麼區別?
- 7. 我的代碼和教程代碼有什麼區別?
- 8. 「碼頭日誌」和「碼頭附加」有什麼區別?
- 9. 困惑!代碼第一和代碼之間有什麼區別?
- 10. 密碼和密碼短語有什麼區別
- 11. 機器碼和操作碼有什麼區別?
- 12. 碼頭圖像和碼頭搜索命令有什麼區別?
- 13. 原始代碼和修改代碼有什麼區別?
- 14. EXC_BAD_ACCESS中的代碼= 1和代碼= 2有什麼區別?
- 15. 下面的代碼1和代碼2有什麼區別?
- 16. 代碼審查和代碼審計有什麼區別?
- 17. 避免死鎖和防止死鎖有什麼區別?
- 18. echo('exit');有什麼區別?死;和死('出口');?
- 19. 這2個vhdl碼有什麼區別
- 20. 這兩個代碼有什麼區別?
- 21. 這段代碼有什麼區別
- 22. 這些verilog代碼有什麼區別?
- 23. 這兩個代碼有什麼區別
- 24. 這些C++代碼有什麼區別?
- 25. 這兩個代碼有什麼區別?
- 26. 這兩個代碼有什麼區別
- 27. 以下代碼段有什麼區別?
- 28. 這段代碼有什麼區別?
- 29. 這段代碼(extjs)有什麼區別?
- 30. 這兩位代碼有什麼區別?
你可以顯示註釋嗎? – user2357112
「注意:無法訪問的代碼不是死代碼,因爲它無法執行」 –
假設這是來自MISRA-C:2012,請閱讀附錄J.解釋死代碼和無法訪問的代碼。 – Lundin