不好意思,C语音基础差,没看懂这是什么意思

2019-07-20 22:17发布

本帖最后由 vention 于 2016-5-11 14:17 编辑

第一个宏定义 定义了后面的LCD 是*** 。 不懂了,看不懂是定义了LCD什么。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
ianhom
1楼-- · 2019-07-21 18:41
vention 发表于 2016-5-12 11:31
哇,好感谢你的这么耐心解答,看完你的例子解释之后,突然明白了很多。不过,我还有一个小小的疑问。

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语言方面的书籍,再动手做做试验,会豁然开朗~
vention
2楼-- · 2019-07-21 21:00
 精彩回答 2  元偷偷看……
ianhom
3楼-- · 2019-07-21 22:17
 精彩回答 2  元偷偷看……
vention
4楼-- · 2019-07-22 03:26
   非常感谢各位的耐心指导和解答。
第九度
5楼-- · 2019-07-22 09:12
 精彩回答 2  元偷偷看……

一周热门 更多>