C语言宏定义

如题所述

第1个回答  2019-08-30
#define
LCD_BASE
((u32)(0x60000000
|
0x0001FFFE))
//一个32位的
无符号整数
:0x6001FFFE
#define
LCD
((LCD_TypeDef
*)
LCD_BASE)
将地址0x6001FFFE
强制转换
成LCD_TypeDef类型的地址

LCD_TypeDef
*p
=
LCD;
printf("%p\n",
p);
可以输出
6001FFFE
第2个回答  2020-02-11
LCD_TypeDef结构体,一共4字节,2个成员都是2字节的。
宏定义,其实就是定义一个
LCD_TypeDef结构体常量,最后一句是强制类型转换。
0x60000000
|
0x0001FFFE==0x6001FFFE,其实相当于分别给
LCD_TypeDef结构体的LCD_REG赋值为0x6001、LCD_RAM赋值为0xFFFE

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网