`(void)inotify_rm_watch(fd,wd)`和`inotify_rm_watch(fd,wd)之间的区别

时间:2016-05-16 13:52:29

标签: c linux

inotify file in C

我看到以下代码用于调用

(void) inotify_rm_watch(fd, wd);
(void) close(fd);

为什么不呢?

inotify_rm_watch(fd, wd);
close(fd);

这两种用法有什么区别?

2 个答案:

答案 0 :(得分:6)

在某些情况下,忽略函数的返回值会导致编译器向您发出警告。

将回复类型转换为void会有效地抑制警告。然而,忽视回归类型的智慧是值得怀疑的。如果函数返回一些东西,你可能想知道它返回了什么?为了防止出现问题,你知道。

特别是,inotify_rm_watch在函数失败时返回-1 - 您通常有兴趣知道它。另一方面,检查close的返回值通常不是必要的,并且与偏执狂接壤:)

答案 1 :(得分:-3)

没有区别。

分号(;)实际上意味着"丢弃你拥有的结果"。在这种情况下,施放到虚空无能为力。