This question already has answers here:
What does casting to `void` really do?
(4个答案)
9个月前关闭。
我在Linux内核中看到了这段代码,但是我无法理解为什么这里调用(void)f。知道吗?
    /* start 'ping' in the background to have some kfree_skb events */
    f = popen("ping -c5 localhost", "r");
    (void) f;

谢谢

最佳答案

根据注释,这段代码使用popen启动后台进程。此函数将FILE *返回到管道的一端。
但是,此代码不使用f的值。通常,如果变量未使用,编译器将打印警告。在一个表达式中使用f本身casted tovoid使用f的值,但显式丢弃该值,从而防止打印警告。

关于c - C编程调用FILE *变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54557497/

10-10 19:18