C 中 () 与 () 的 (void) 是什么意思

What is (void) with () in C

最近发现了这行代码,但是不知道void with ()是什么意思。 有人能帮我吗 ? 谢谢

(void) myFunc();

myFunc 大概是 returns 什么的。将 (void) 添加到函数调用 (void)myFunc() 是一种自我记录代码的方法。这意味着,“我知道 myFunc return 是一个值,但我不在乎它是什么。”

(void) 具有转换操作的形式,但转换为 void(注意:不是 void *)通常不是一件有用的事情。

不过,在这种情况下,(void) myFunc(); 意味着 myFunc returns 一个值,而编写这行代码的人想要丢弃该值并且不希望编译器为了抱怨这一点,and/or 想向代码的未来读者表明他们是故意丢弃价值的。在生成的代码中,(void) myFunc(); 与前面没有任何内容的 myFunc(); 具有完全相同的效果。

由于这种表示法的历史滥用,一些编译器会警告您不要使用某些函数的值(例如 mallocreadwrite即使你把(void)放在他们前面,所以它没有以前那么有用了。