1
val = (val1 << 8) | (val >> 8);
val = (val2 << 16) | (val >> 8);
val = (val3 << 32) | (val >> 8);
val = (val << 8);
的代碼片段INT TC我會得到輸出中,如果我用grep爲grep -nhE "(<<.*|).*(>>)" t.c
1:val = (val1 << 8) | (val >> 8);
2:val = (val2 << 16) | (val >> 8);
3:val = (val3 << 32) | (val >> 8);
但如果與像cppcheck搜索./cppcheck --rule="(<<.*|).*(>>)" t.c
我會得到輸出
[../test/t.c:1]: (style) found ' val = (val1 << 8) | (val >> 8) ; val = (val2 << 16) | (val >> 8) ; val = (val3 << 32) | (val >>'
即,整條匹配線togethe顯示第一個匹配的r。我想要在grep命令中的結果。
請幫
你的規則過於複雜。由於交替運算符'|',您只能有效地搜索'>>'。 將簡單表達式與vs兼容輸出相結合,使用'./cppcheck --template = vs --rule =「>>」t.c'。您可以定義自己的格式化輸出的模板,請參見[手冊的第5章](http://cppcheck.sourceforge.net/manual.pdf)。 – collapsar