从标题可能不清楚。我在嵌入式STM32项目中遇到以下代码。我不明白函数内部的行。C:“(void)ptr;”
static void txend1(UARTDriver *uartp) {
(void)uartp; // what does this do? Is it a statement?
}
我试过其他地方网上搜索,但大多数结果被转换指针void的指针,我不认为这是。谢谢您的帮助!
从标题可能不清楚。我在嵌入式STM32项目中遇到以下代码。我不明白函数内部的行。C:“(void)ptr;”
static void txend1(UARTDriver *uartp) {
(void)uartp; // what does this do? Is it a statement?
}
我试过其他地方网上搜索,但大多数结果被转换指针void的指针,我不认为这是。谢谢您的帮助!
这只是一个portable way to suppress the warning关于这个未使用的uart
参数。
它没有任何效果,但编译器可以看到使用过程中,不发出任何警告。
当函数的原型强加/无法更改(回调函数)时非常有用,但您的实现不需要此参数。
(注意:gcc
利于__attribute__((unused))
结构,比较容易理解,但所有的编译器不兼容)
这意味着“不要告诉我,我写不好的代码,我打算* *不要用论据”。 C编译器对它有点肛门分析并且倾向于产生警告。经常适当,但只是不在这里。在传输结束时他不想做任何特殊的事情,这并不罕见。函数指针不是他的选择。 –
@HansPassant这可能是由于来自外部方的强制API和/或为了统一起见 - 例如,可以使用指针的替代实现。 – SomeWittyUsername
是的,这就是“功能指针不是他的选择”的意思。 –