最近发现了这行代码,但是不知道带()的void是什么意思。有人能帮我吗 ?谢谢
(void) myFunc();
Run Code Online (Sandbox Code Playgroud)
(void)具有强制转换操作的形式,但强制转换为void(注意:不是 to void *)通常不是一件有用的事情。
但是,在这种情况下,这(void) myFunc();意味着myFunc返回一个值,并且编写这行代码的人都想丢弃该值,并且不希望编译器对此有所抱怨,和/或希望向代码的未来读者明确说明他们故意丢弃价值。在生成的代码中,与前面什么都没有的(void) myFunc();效果完全一样myFunc();。
由于这个符号的历史滥用,一些编译器会警告你不要使用某些函数的值(例如malloc, read, write),即使你放在(void)它们前面,所以它没有以前那么有用了。
myFunc可能是returns什么。添加(void)到函数调用中(void)myFunc()是一种自我记录代码的方法。它的意思是,“我知道myFunc return一个值,但我不在乎它是什么。”