我是一只羊 发表于 2022-4-30 08:38:25

(UINT8 *)&data的含义

UINT8 *address ;
UINT8 *address11 ;
UINT8 v_buf;
#define data v_buf
#define data11 v_buf

address =(UINT8 *)data;    /*address指向data的地址??*/
address11 =(UINT8 *)&data11;

最后一条语句 前面加个取址符,整句代表的含义是什么?和上一句有什么差别?
麻烦大神指点下,谢谢!

jhanker 发表于 2022-4-30 13:29:17

你把代码
UINT8 *address ;
UINT8 *address11 ;
UINT8 v_buf;
#define data v_buf
#define data11 v_buf

address =(UINT8 *)data;    /*address指向data的地址??*/
address11 =(UINT8 *)&data11;

中的data 和 data11 修改成
UINT8 *address ;
UINT8 *address11 ;
UINT8 v_buf;
#define data v_buf
#define data11 v_buf

address =(UINT8 *)v_buf;   /*address指向data的地址??*/
address11 =(UINT8 *)&v_buf;
是一样的
估计你的代码是8位的单片机,
1.由代码可知 v_buf内容是8位的无符号整型, (UINT8 *)data 是强制把无符号整型转换成地址
2.(UINT8 *)&data11 是把 v_buf的地址赋值给address11

jhanker 发表于 2022-4-30 13:50:38

address11 =(UINT8 *)&v_buf; 与address11 =&v_buf; 应该一样,不需要转换
页: [1]
查看完整版本: (UINT8 *)&data的含义