我的一位同事声称在C中输入函数的返回值是未定义的,但我找不到任何支持他的主张的内容。
我知道类型转换函数指针很糟糕,请看这里: Casting a function pointer to another type
但我想确认以下代码是可接受的并且定义明确:
0:localhost:22
答案 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)