打印

函数类型及其返回值有关问题

[复制链接]
1617|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenyu988|  楼主 | 2012-7-9 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
entepino| | 2012-7-9 19:20 | 只看该作者
不可能

使用特权

评论回复
板凳
wjzx111056| | 2012-7-9 22:01 | 只看该作者
首先,你得明确这两种数据类型。float型是指表示有小数的数据类型,在不同的C编译器重,float型占据的空间大小可能不同,一般情况下,float型数据在内存中占4个字节(即32位),它的精度度只能精确到7位,高于7位时的数字是系统随机生成的,没有意义;unsigned int,是一种整型数据类型,unsigned能存储的数据范围则是0~65535。
其次,如果你的返回的值没有超过65535 ,所以是将float型转为uint型不会产生溢出,但是这样的转换将导致数据精度的降低,即将达不到要求的精确度。

使用特权

评论回复
地板
rotate110| | 2012-7-9 22:38 | 只看该作者
使用明确的强制类型转换可以

使用特权

评论回复
5
amwrdfe| | 2012-7-9 23:43 | 只看该作者
unsigned int c语言并没有规定它的空间。
51中他是2byte,
arm中他一般都是4byte。

什么类型返回什么类型的值,
别想搞点花活。

使用特权

评论回复
6
shell.albert| | 2012-7-10 08:33 | 只看该作者
如果你的编译器不严格的话,可能会导致“自动类型转换”。
如果严格的话,可能编译的时候会提示warning或error

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

1108

帖子

14

粉丝