C语言中的(void) with ()是什么意思?

6

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

(void) myFunc();

你应该添加更多的上下文。函数的其余部分是什么样子的?至少让我们知道它返回了什么。 - klutt
2个回答

8

(void)的形式类似于强制类型转换,但是将其转换为void(注意不是void *)通常没有什么用。

然而,在这种情况下,(void) myFunc();表示myFunc返回一个值,并且编写此代码行的人想要丢掉该值,并且不希望编译器对此进行投诉和/或希望向代码的未来读者明确表明他们有意丢弃该值。在生成的代码中,(void) myFunc();与前面没有任何内容的myFunc();具有完全相同的效果。

由于此符号的历史滥用,一些编译器即使在它们前面放置了(void)也会警告您不使用某些函数的值(例如mallocreadwrite),所以它比以前 less 有用。


1
“由于对这种表示法的历史性滥用”,这是什么意思? - Zircoz
3
有一些C库函数,如果调用它们并忽略返回值几乎总是会导致错误,但通常很难对返回值进行有意义的操作。因此,懒惰的程序员可能会编写(void) write(...)这样的代码。编译器开发人员则决定忽略(void)并强制发出警告,提醒程序员应该使用返回值。如果您想了解更多信息,请提一个新问题。 - zwol

5

myFunc 可能会返回某个值。在函数调用时添加(void)(void)myFunc(),是一种自我记录代码的方式。它的意思是,“我知道myFunc会返回一个值,但我不关心它是什么。”


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接