首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在C中调用函数时会指定函数的返回类型?

问为什么在C中调用函数时会指定函数的返回类型?
EN

Stack Overflow用户
提问于 2010-11-30 21:35:51
回答 2查看 124关注 0票数 3

可能重复:

Need for prefixing a function with (void)…

嗨,

我正在使用一些C代码,作者使用了我不熟悉的语法。使用以下函数调用:

代码语言:javascript
复制
(void) msleep(&gActivationCount, NULL, PUSER,
    "com_apple_dts_kext_KauthORama.RemoveListener", &oneSecond);

看起来,作者将返回转换为空,或者只是简单地说明函数原型可能是什么(我说可能是因为我不能将函数解析为它的原型),表示返回值。这不等于:

代码语言:javascript
复制
msleep(&gActivationCount, NULL, PUSER,
    com_apple_dts_kext_KauthORama.RemoveListener", &oneSecond);

谢谢,

史考特

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-30 21:41:10

对于发出警告的lint和编译器来说,这是一个古老的(而且非常令人眼花缭乱)的技巧,可以显式地标记您忽略函数返回值的意图。忘了你见过它。在现代编译器上,您必须想尽办法打开这个警告,一些(比如gcc)提供扩展来标记特定的函数,而忽略返回值是危险的。

票数 4
EN

Stack Overflow用户

发布于 2010-11-30 21:38:00

他将结果抛出为空,以明确地放弃该值,但更多的情况是去掉关于未使用结果的警告(这可能不应该被忽略!)

当函数已经返回了void时,将其转换为(void)就更没有意义了。

较老的编译器似乎过于热衷于报告未使用的值--最近,如果您有一个必须检查的函数,则需要使用__attribute__((warn_unused_result))来代替。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4318925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档