c - 当使用 -Wmissing-prototypes 时,如何抑制 GCC 对中断例程没有原型(prototype)的警告?

标签 c embedded compiler-warnings interrupt mplab

我正在使用 MPLABX(Microchip 产品的 IDE)和 XC16 编译器(基于 GCC)用 C 编写嵌入式代码。

我正在使用 -Wmissing-prototypes 来确保我拥有所有函数的原型(prototype)。我的问题是我有很多中断服务程序,这导致编译器也提示缺少这些程序的原型(prototype)。

因为用户软件从不直接调用 ISR 函数,所以我不想在我的代码中的任何地方放置它们的原型(prototype)。

有什么方法可以显示缺少原型(prototype)的警告,除了中断服务例程(即标记有__attribute__((interrupt,auto_psv))的函数)?

最佳答案

我听从了 Carl Norum 的建议,只是在函数定义的正上方添加了函数原型(prototype)。

举个例子:

void __attribute__((interrupt,auto_psv)) _SPI2ErrInterrupt(void);
void _SPI2ErrInterrupt(void)
{
    // Do ISR stuff...
}

关于c - 当使用 -Wmissing-prototypes 时,如何抑制 GCC 对中断例程没有原型(prototype)的警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086863/

相关文章:

C:将 system() 的输出重定向到 stderr

c - 如何将 NULL 分配给 float/double 变量?

c# - 专用网络上的套接字

c - 实现从DS18B20读取温度并在LCD上显示的功能

compiler-warnings - "requires body"警告

c - 从文本文件读取后,结果显示不正确

c - 没有在内存中正确设置整数

linux - 如何将/dev/中的设备与实际的驱动关联起来

c++ - 全局摆脱警告C4503

maven - 当将null作为varargs参数发送时,Gradle和Maven的行为不同