我看到以下代码用于调用
(void) inotify_rm_watch(fd, wd);
(void) close(fd);
为什么不呢?
inotify_rm_watch(fd, wd);
close(fd);
这两种用法有什么区别?
答案 0 :(得分:6)
在某些情况下,忽略函数的返回值会导致编译器向您发出警告。
将回复类型转换为void
会有效地抑制警告。然而,忽视回归类型的智慧是值得怀疑的。如果函数返回一些东西,你可能想知道它返回了什么?为了防止出现问题,你知道。
特别是,inotify_rm_watch
在函数失败时返回-1
- 您通常有兴趣知道它。另一方面,检查close
的返回值通常不是必要的,并且与偏执狂接壤:)
答案 1 :(得分:-3)
没有区别。
分号(;
)实际上意味着"丢弃你拥有的结果"。在这种情况下,施放到虚空无能为力。