c - GCC 如何停止 ROM 中函数的误报警告隐式函数声明?

标签 c gcc microcontroller

我想摆脱我的代码库中的所有隐式函数声明警告。但是有一个问题,因为有些函数是
在工厂和链接过程中编程到微 Controller ROM 中,链接描述文件仅提供函数地址。这些函数由 SDK 中的代码调用。

在编译 gcc 期间当然会发出警告 implicit-function-declaration .我怎样才能摆脱这个警告?

明确地说,我明白为什么会有警告以及它是什么意思。但在这种特殊情况下,SDK 的开发人员保证代码将使用隐式规则(即隐式函数只接受整数并返回整数)。所以这个警告是误报。

这只是 gnu-C-99,没有 C++。

想法:

  • 猜测参数类型,在头文件中写一个原型(prototype)并包含它?
  • 告诉 gcc 使用某些 gcc 属性将此类函数视为误报?
  • 最佳答案

    您可以在 header 中创建原型(prototype)函数,也可以使用以下命令抑制警告:

    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wimplicit-function-declaration"
    /* line where GCC complains about implicit function declaration */
    #pragma GCC diagnostic pop
    

    关于c - GCC 如何停止 ROM 中函数的误报警告隐式函数声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55896653/

    相关文章:

    c++ - C/C++ 查找指针

    在 C 中更改工作目录?

    c - 可以为同一个应用程序编译具有不同 gcc 优化级别的文件吗?

    gcc - 如何在数据部分(RAM)中保留一定范围的内存并防止使用该内存的同一应用程序的堆/堆栈?

    c++ - 如何通过NodeMCU从网络获取数据

    c - 将 char* 转换为枚举值的有效方法

    c - C 中使用分隔符分割字符串

    c - 在 GCC 中禁用字符串的 NUL 终止

    c++ - 如何在 powerpc 中使用内联汇编获取 cpuid?

    我可以在 Microchip C18 中制作一个接受 ram 和 rom 指针的函数吗?