[英]How do I turn off a static code analysis warning on a line by line warning in CDT (C code)?
我們有一個在Eclipse中使用CDT的項目。 這是一個剛剛導入到Eclipse的舊項目,我想確保我們開始使用靜態代碼分析來發現任何怪異之處。
關鍵是,有很多行會觸發我們只想忽略的警告,主要的是switch語句中的失敗。
我知道如何做到這一點,但是CDT呢? 我可以在單行上方添加單行注釋嗎?
示例:(“案件結束時不中斷”)
case enChA:
nChannel++;
// I want to ignore this fallthrough
case enChB:
nChannel++;
// And this one...
case enChC:
nChannel++;
// And this one...
case enChD:
nChannel++;
// do some more stuff...
break;
你應該試試
//no break
在下一種情況之前。
這些設置位於窗口->首選項-> C / C ++->代碼分析下。 您可以自定義設置。 例如,如果No break at the end of case
選擇No break at the end of case
可以定義禁止警告的注釋。 默認情況下是“不間斷”。 因此,恰好將警告消息復制/粘貼到您的案例中的注釋中:
如您所見,文本不必完全匹配,而且似乎也不區分大小寫。
請參閱有關未使用變量的后續問題 : Unused variable in file scope
自定義Unused variable in file scope
可以定義應忽略的變量名稱:
有兩個神秘的預定義例外“ @(#)”和“ $ Id”。 不幸的是我找不到任何官方文件,所以我繼續研究資料來源 。 看起來檢查器只是簡單地測試變量名是否contains()
任何指定的異常。 如果是這樣,警告將被禁止。
在Eclipse CDT之外,還有流行的空投技巧。 如果編譯器警告未使用的變量,請將其強制轉換為void。 此操作無效,因此很安全,但是從編譯器的角度來看,現在使用了變量。 我通常將其包裝在宏中,以使我在做什么很清楚,例如
#define UNUSED(var) (void)(var)
void foobar()
{
int b; // not used.
UNUSED(b); // now it's used
}
解決了。
我只是將我想忽略的警告中的文字添加到該中斷所在的位置上方。
像這樣:
case enChC:
++nChannel;
//No break at the end of case
case enChD:
++nChannel;
如前所述,在這種特定情況下,可以添加注釋來解決:
//no break
要么:
//no break at the end of case
真正重要的是(不間斷)。
但是,還需要在此案例的末尾與下一個案例之間不要有更多評論,否則它將無法正常工作。 例如,下一種情況仍然會導致警告:
case enChC:
++nChannel;
//No break
//This second case decrease the value
case enChD:
++nChannel;
您必須升級到Eclipse Oxygen.3(或2.)。
從這些版本開始,只需使用“快速修復”就可以禁止顯示警告/標記。
我遇到了這個問題,我只想消除它們。 我試圖添加/ *不間斷* /,您應確保在下一個“案例”之前添加它。 這是我遇到的問題
這是我使用的解決方案:
要禁用煩人的通知,您需要轉到“首選項”->“ C / C ++”->“編輯器”,然后取消選中“突出顯示非活動代碼”,“鍵入時顯示問題”等選項。希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.