失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > c语言如何调用void函数返回值 C void函数 返回值

c语言如何调用void函数返回值 C void函数 返回值

时间:2021-07-10 23:06:42

相关推荐

c语言如何调用void函数返回值 C void函数 返回值

没有表达式的return语句:

void func(void) {

return;

}

在void函数中是完全合法的.带表达式的return语句的合法性取决于您正在使用的C语言的版本.

1990 C标准说:

A return statement with an expression shall not appear in a

function whose return type is void.

该标准的1999年和版本都说:

A return statement with an expression shall not appear

in a function whose return type is void. A return

statement without an expression shall only appear in a function

whose return type is void.

这是一个约束,这意味着编译器必须为任何违反它的程序发出诊断(可能是非致命警告).

由于历史原因,C90允许返回语句在非void函数中没有表达式.前ANSI C没有void关键字,因此无法定义未返回值的函数.程序员会省略返回类型(默认为int)并简单地忽略它. C90规则允许这样的旧代码编译而不会出错.您仍然无法从非void函数返回值;如果调用者尝试使用(不存在)结果,则程序的行为是未定义的. 1999年的标准稍微收紧了规则.

你的程序的另一个问题是你在声明可见之前调用fun.根据C99及更高版本的规则,这是非法的(尽管编译器可能只是警告它).根据C90规则,这是合法的,但编译器将假定该函数返回int.您的程序的行为是未定义的,但您的void函数乐趣可能恰好表现为返回一个值,并且对它的调用可能恰好表现为使用该值.

C编译器对于某些错误往往相当宽松,因此旧代码(有时在第一个实际标准发布之前编写)不会被拒绝.但是你的编译器应该至少警告你关于return语句,可能还有关于无效调用的警告.你应该密切关注编译器警告;他们的待遇几乎与致命错误一样.您应该使用选项来增加编译器警告您的数量.如果您正在使用gcc,请使用-std = c90,-std = c99或-std = c11以及-pedantic来强制执行标准一致性.您可以添加-Wall-Wextra`以启用更多警告.

如果觉得《c语言如何调用void函数返回值 C void函数 返回值》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。