c语言的函数问题,高手帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:47:02
char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)
{.......}
主函数中有这么句
error+=s_measure((unsigned char*) &humi_val.i,&checksum,HUMI)
我想问下(unsigned char*)这句是什么意思呢?它为什么会在括号中?有什么含义?

(unsigned char*)是一个强制转换语句,把后面的值转换为无符号字符型指针
后面的值是&humi_val.i,是一个地址也就是指针,而调用的s_measure函数的要求参数是一个unsigned char *类型,所以要把&humi_val.i转换为需要的类型

(unsigned char*)就是起着强制转换的作用,你应该见过
float a=4.3;
int b;
b=(int)a;这样的语句吧
道理是一样的

强制转化为无符号字符指针