C语言中,
unsignef char Temp_Val;
Temp_Val = (unsignef char)rd_temperature();
若rd_temperature()函数返回51.7,则Temp_Val 等于多少?
在C语言中,unsigned char
类型通常用于存储0到255之间的无符号整数。当你将一个浮点数或任何其他类型的值赋给 unsigned char
类型的变量时,C语言会进行类型转换,具体过程如下:
- 首先会把这个值转换成
int
类型(如果它不是int
类型的话)。 - 然后将这个
int
值的范围限制在unsigned char
的范围内,即0到255。
在您的例子中,rd_temperature()
函数返回了一个浮点数51.7。当这个值被强制转换为 unsigned char
类型时,会发生以下转换:
- 首先去掉小数部分,只保留整数部分,即51。
- 然后将整数51直接赋值给
unsigned char
类型的变量Temp_Val
。