奇怪的 指针转换,求解
--超 2018-11-14 05:50:54
1. 转换成功
static void get_data( char* pData, float* pfData )
{
int i ;
for( i = 0; i < 10; i++ )
{
pfData[i] = ((float)((int16_t)( *( (int16_t*)(&pData[2*i]) ) ))) * 0.003 ;
}
}
取char 地址,后转换成int16_t* 指针, 将pData[0] pData[1] 当成int16_t取出
2. 失败
typedef struct {
uint8_t low ;
uint8_t hig ;
} short_t;
short_t data[FRM_DATAS] ;
printf("%d \n", (*(int16_t*)((int8_t*)((char*)&(pData->data[i])))) );
使用pData->data[i].low 也失败
使用 .hig 成功, 但是只能取出一个字节数据,不像【1】中,取的是双字节
???
请教各位大佬解答