键入C函数的返回值是否可以接受?

时间:2016-12-07 19:18:45

标签: c casting

我的一位同事声称在C中输入函数的返回值是未定义的,但我找不到任何支持他的主张的内容。

我知道类型转换函数指针很糟糕,请看这里: Casting a function pointer to another type

但我想确认以下代码是可接受的并且定义明确:

0:localhost:22

1 个答案:

答案 0 :(得分:2)

除了评论中回答的内容之外,您可以使用this之类的文章来反驳您的论点,这些文章会反复讨论如何投射返回值。

我们不时使用的一个简单示例是强制转换round()函数的返回值。

这是微不足道的,你甚至可以在C Standard, page 567 of this pdf中看到它。

  

在上面从浮动到整数的转换中,使用(强制转换)x   可以用(cast)round(x),(cast)rint(x)替换,   (cast)nearbyint(x),(cast)trunc(x),(cast)ceil(x),或(cast)floor(x)