这句话在C中意味着什么:“(void)ptr;”

时间:2017-09-20 22:16:38

标签: c embedded stm32

标题中可能不清楚。我在嵌入式STM32项目中遇到了以下代码。我不明白函数内部的行。

    static void txend1(UARTDriver *uartp) {
        (void)uartp; // what does this do? Is it a statement?
    }

我已经尝试在线搜索其他地方,但大多数结果都是指向void指针的指针,我不认为这是。谢谢你的帮助!

1 个答案:

答案 0 :(得分:12)

这个未使用的uart参数只是portable way to suppress the warning

它没有任何效果,但编译器会看到已使用的,并且不会发出任何警告。

在强制/无法更改函数原型(回调函数)时非常有用,但您的实现并不需要此参数。

(请注意gcc偏好__attribute__((unused))结构,更容易理解,但与所有编译器不兼容)