2019-07-20 22:17发布
vention 发表于 2016-5-12 11:31 哇,好感谢你的这么耐心解答,看完你的例子解释之后,突然明白了很多。不过,我还有一个小小的疑问。
最多设置5个标签!
6楼的朋友已经很好地回答你的问题 @civic7366
&是取地址符,&u32A就可以得到u32A这个变量的地址,而LCD_BASE本身就是个地址,所以不需要用&。(在C语言书籍中可以看看指针部分,“&”和 “*”的说明)
是#define,不是#defined。
如果是#define *LCD (LCD_TypeDef*)(LCD_BASE),这里宏定义命名规则同变量命名规则,不能用这样*LCD的命名,编译器会报错。我觉得你想问的是6楼所说那种情况,即LCD_TypeDef *LCD=(LCD_TypeDef *)LCD_BASE;这样也是可以使用LCD->LCD_REG的,不过需要注意的是,这时候LCD不是宏,而是指针变量,需要占用内存的,即LCD的值是可以变得,LCD可以指向其他地址。
我解释的不是很清楚,可以在看看c语言方面的书籍,再动手做做试验,会豁然开朗~
一周热门 更多>