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

[复制链接]
2315|5
 楼主| chenyu988 发表于 2012-7-9 16:28 | 显示全部楼层 |阅读模式
函数类型定义成uint型,但里面的返回值是float型,读出的值会不会瞬时不准或冗乱?
住:返回的值没有超过65535 。
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 | 显示全部楼层
使用明确的强制类型转换可以
amwrdfe 发表于 2012-7-9 23:43 | 显示全部楼层
unsigned int c语言并没有规定它的空间。
51中他是2byte,
arm中他一般都是4byte。

什么类型返回什么类型的值,
别想搞点花活。
shell.albert 发表于 2012-7-10 08:33 | 显示全部楼层
如果你的编译器不严格的话,可能会导致“自动类型转换”。
如果严格的话,可能编译的时候会提示warning或error
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

1107

帖子

14

粉丝
快速回复 在线客服 返回列表 返回顶部