0
工作,我創建了使用VS2010控制檯應用程序像下面代碼分析不會在VS 2010中
int test(int i)
{
if (i == 0)
return 0;
else
return 1;
int j = 2;
j++;
return j;
}
void deadCode(char * pa)
{
printf("%s", pa);
}
int _tmain(int argc, _TCHAR* argv[])
{
test(2);
return 0;
}
我檢查「啓用代碼分析C/C++的編譯」,並選擇規則集「微軟所有規則」,當我建立這個項目,我
1> RunCodeAnalysis:
1>運行代碼分析...
1>代碼分析完成 - 0個錯誤,0警告(S)
我預期在測試加粗部分()「CA1804」的警告,應顯示爲死代碼deadCode另一個警告()。
我的問題是爲什麼代碼分析沒趕上缺陷?我還嘗試創建僅啓用CA1804警告的規則集,但結果與上述內容(Microsoft所有規則)相同。
任何想法?
我本來期望它雖然找到一種方法裏面可達代碼。 – ChrisF 2013-02-26 23:09:08
第一部分,是的,圖書館是真的。但我的項目生成可執行文件,所以未使用的函數意味着死代碼。 – Liyilin 2013-02-26 23:14:23
@利林林是的,但靜態代碼分析儀應該如何注意這一點?它必須檢查項目配置。而且,捕捉這種'死代碼'並不重要!函數中的死代碼幾乎總是意味着程序員錯誤 - 您實現了永遠不會到達的邏輯。未使用的函數可能出於多種原因:已經實現但尚未使用的代碼,庫代碼... – us2012 2013-02-26 23:18:11