首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要在函数前加上前缀(void)

需要在函数前加上前缀(void)
EN

Stack Overflow用户
提问于 2010-06-14 16:44:44
回答 6查看 321关注 0票数 5

我最近遇到了一个相当不寻常的编码约定,其中对返回"void“的函数的调用以(void)为前缀。

例如:

代码语言:javascript
复制
(void) MyFunction();  

它与函数调用有什么不同,比如:

代码语言:javascript
复制
MyFunction();  

它有没有什么优势,或者它是另一个不必要的,但有某种编码约定?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-06-14 16:51:46

像printf()这样的一些函数返回的值在实际代码中几乎从未使用过(在printf中,返回的是打印的字符数)。但是,一些工具,如lint,预期如果函数返回一个值,则必须使用该函数,除非您编写以下代码,否则会出现错误:

代码语言:javascript
复制
int n = printf( "hello" );

使用void造型:

代码语言:javascript
复制
(void) printf( "hello" );

是一种告诉这些工具你真的不想使用返回值的方式,从而使它们保持安静。如果您不使用这些工具,就不需要麻烦了,而且在任何情况下,大多数工具都允许您将它们配置为忽略来自特定函数的返回值。

票数 12
EN

Stack Overflow用户

发布于 2010-06-14 16:46:59

不,没有任何区别--转换为void的是函数的返回值。

我要说的是,你想显式地表明你没有使用返回值(你调用返回值是为了副作用),这是有道理的,但由于函数已经有了void return,所以它没有多大意义。

票数 2
EN

Stack Overflow用户

发布于 2010-06-14 16:55:13

如果函数返回了void可以避免的东西(!)一些编译器(或lint工具)上的警告(实际上我无法让gcc警告我返回值丢失);但更重要的是,它清楚地表明返回值是被故意“丢弃”的(而不是错误的)。

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

https://stackoverflow.com/questions/3035927

复制
相关文章

相似问题

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