我正在查看一段将命令从一种硬件发送到另一种硬件的代码。以下是一个摘要。
unsigned char data[3];
msg_header *mHead; //pointer of struct msg_header
mHead = (msg_header *) &data;
mHead->startByte = START_BYTE;
mHead->ID = GET_TELEM; //0x30
mHead->length = 0;
msg_header结构在头文件中定义。
typedef struct {
unsigned char startByte;
unsigned char ID;
unsigned char length;
// unsigned char from;
} msg_header;
有人可以解释
mHead = (msg_header *) &data;
实际在做什么吗?我知道*&正在创建指向指向数据的指针的引用,但是为什么msg_header包含在括号中,为什么包含它?
谢谢你的帮助。
最佳答案
它将data
的地址转换为msg_header*
类型-指向msg_header
的指针。
没有可谈的引用。 &
可用于获取变量的地址。