(void) fputs( line, stdout );
(void) alarm( TIMEOUT );
上面出现在函数体中,我以前从未见过这样的代码......
答案 0 :(得分:10)
这是一种编码调试工具的形式,代价是人类阅读你的代码,它是 Considered Harmful 。特别是,如果你没有使用返回值的函数的返回值,那么经典lint
工具和一些编译器会生成警告,并且在本地抑制它的唯一方法是将结果转换为{{1 }}
如果你有足够的权限,可以忽略它,或者修复它(删除无用的void
强制转换)。
答案 1 :(得分:4)
唯一不寻常的是void
的演员阵容。这是一种表示您将忽略函数的返回值,或指示函数不返回任何值的方法。一些编译器警告忽略返回值,因此可以绕过该警告。我自己认为这不是很好的风格。
答案 2 :(得分:1)
如果您的意思是(void)
部分,则明确地丢弃函数调用的结果。 fputs(...)
会返回int
。 (void) fputs(...)
会丢弃int
返回值,而不会生成编译器警告。