c - C : "(void)ptr;" 这个语句是什么意思

标签 c embedded stm32

<分区>

从标题上看可能不是很清楚。我在嵌入式 STM32 项目中遇到了以下代码。我不明白函数内的那一行。

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

我试过在网上搜索其他地方,但大多数结果都是将指针转换为 void 指针,我认为这不是。感谢您的帮助!

最佳答案

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

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

当函数的原型(prototype)被强加/无法更改(回调函数)但您的实现不需要此参数时非常有用。

(注意 gcc 支持 __attribute__((unused)) 结构,更容易理解,但不兼容所有编译器)

关于c - C : "(void)ptr;" 这个语句是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46332561/

相关文章:

c - 写入内核模块时内核非法指令

c - 嵌入式 C : How to apply the MAP macro to two arguments at a time instead of one?

c - 从函数返回一个结构到 main.c?

user-interface - 嵌入式 GUI - 类似于 GWEN?

STM32cubeMX固件包

c++ - 如何在 Windows 上编译 encfs4win

C 编程帮助 - 用户退出程序的选项

c - C语言中如何将10进制数转换为10进制数?

c - 将 32 位寄存器拆分为可变大小字节

linux - 如何在不实际拔下 USB 调制解调器的情况下逻辑断开和重新连接 USB 调制解调器