You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Cppcheck忽略包含内联汇编的特定函数?

如何让Cppcheck忽略包含内联汇编的特定函数检查

我有多个包含内联汇编的函数,Cppcheck会在这些代码里检测出一些误报(比如对汇编语法的误解)。我可以单独抑制单个错误,但代码更新后错误内容可能变化,有没有办法直接让Cppcheck忽略整个函数的检查?

示例代码:

// cppcheck-suppress ignoreThisFunction?
void test_func() {
    
    __asm
           ; enter   hl = void *src  // style:Variable 'hl' is assigned a value that is never used
           out (c),h // warning:Found suspicious operator ','
    __endasm;
}

可行的解决方法

  • 函数级单行抑制:在函数上方添加// cppcheck-suppress all,直接忽略该函数内所有检查:

    // cppcheck-suppress all
    void test_func() {
        __asm
               ; enter   hl = void *src
               out (c),h
        __endasm;
    }
    
  • 用属性标记函数:在函数定义时加上__cppcheck_ignore__属性,让Cppcheck跳过整个函数的检查:

    void __cppcheck_ignore__ test_func() {
        __asm
               ; enter   hl = void *src
               out (c),h
        __endasm;
    }
    
  • 配置文件批量忽略:如果有多个这类函数,可在Cppcheck配置文件(如cppcheck.cfg)里添加忽略规则:

    <?xml version="1.0"?>
    <rules>
        <rule>
            <ignore>test_func</ignore>
            <ignore>another_asm_func</ignore> <!-- 其他需要忽略的函数名 -->
        </rule>
    </rules>
    

    运行时指定配置文件:cppcheck --config=cppcheck.cfg your_code.cpp

内容的提问来源于stack exchange,提问作者Under4Mhz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:48:10