- 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
\
说明
指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。 来自 指针的百度百科 baike.baidu.com/item/%E6%8C…
背景
因为不止一个参数,不能用return的方式返回。同时,若用全局变量的方式,则只能用于传递同一组参数。若采用指针传递方式,则可实现传递两个参数,并具有通用性。。。 所以使用指针传递的方式,实现返回多个变量。 void Get_Value_2(unsigned int*data0,unsigned int *data1)
{ //buf中数据长度
unsignedshort buf_len = 0;
//buf数据中值的位数
unsignedshort buf_data_len = 0;
unsignedshort buf_data_len_0 = 0;
unsignedshort buf_data_len_1 = 0;
unsignedchar i = 0;
buf_len= Version_buf[2];
buf_len<<= 8;
buf_len|= Version_buf[1];
buf_data_len= buf_len - 1 - 5;
buf_data_len_0= 0;
for(i= 0;i< buf_data_len;i++)
{
if(Version_buf[8+i]!= 0x2C)
buf_data_len_0++;
else
break;
}
//总的长度减去逗号1个字符
buf_data_len_1= buf_data_len - buf_data_len_0 - 1;
*data0= 0;
for(i= 0;i< buf_data_len_0;i++)
{
*data0+= (Version_buf[8+i]-0x30)*pow(10,buf_data_len_0 - 1 -i);
}
*data1= 0;
for(i= 0;i< buf_data_len_1;i++)
{
*data1+= (Version_buf[8+buf_data_len_0+1+i]-0x30)*pow(10,buf_data_len_1 - 1 -i);
}
}