OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2854|回复: 5

关于int m[] = {WHITE, BLACK, BLUE, BRED}的理解

[复制链接]

6

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-5-25
在线时间
12 小时
发表于 2017-2-15 16:21:02 | 显示全部楼层 |阅读模式
3金钱
在UCOSIII扩展例程下面使用信号量进行任务同步的源码中,遇到这样一个定义:
int lcd_discolor[14]={        WHITE, BLACK, BLUE,  BRED,      
                                GRED,  GBLUE, RED,   MAGENTA,                
                                GREEN, CYAN,  YELLOW,BROWN,                        
                                BRRED, GRAY };
然后在下面就这样遍历这个数组:lcd_discolor[num%14];
我认为自己的C学得还算可以,可是看似简单的一个字符数组定义我以前没见过,也理解不通,可是这个定义确实能让程序正确的运行。我不理解的地方:
(1)数组里面每个元素都定义为int类型(即4个字节),如果用来存放字符串,显然应当理解成这样:lcd_discolor[0] = {"WHITE"};lcd_discolor[1] = {"BLACK"};.... lcd_discolor[13]={"GRAY"}但是没加引号这样是什么意思?
(2)为何要定义成int,为什么不是char?
我真的不理解上面这个定义,我知道两种处理字符串的两种方法:char *p = "hello!"; char a[] = "hello!";像这样的int m[] = {WHITE, BLACK, BLUE,  BRED}做何解释???麻烦大家有谁知道的帮我讲解一下。

最佳答案

查看完整内容[请看2#楼]

点击查看WHITE是什么东西!!!这些是宏定义。简单到不能再简单的东西,只想说,你想太多了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2017-2-15 16:21:03 | 显示全部楼层
点击查看WHITE是什么东西!!!这些是宏定义。简单到不能再简单的东西,只想说,你想太多了。
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2017-2-15 16:28:51 | 显示全部楼层
你沒看過 #define 嗎? WHITE不是字串,他是常量...

這很基礎耶...


回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2017-2-15 16:37:27 | 显示全部楼层
而且就算陣列空間夠...你下面的語法也錯的 直接寫入字串只能是在初始化

lcd_discolor[0] = {"WHITE"}  ;lcd_discolor[1] = {"BLACK"}...

還是先在電腦上把C學好再看原子的範例吧
回复

使用道具 举报

6

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2016-5-25
在线时间
12 小时
 楼主| 发表于 2017-2-15 16:56:36 | 显示全部楼层
谢了,是个宏,没点进去看
回复

使用道具 举报

3

主题

177

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1604
金钱
1604
注册时间
2016-1-28
在线时间
265 小时
发表于 2017-2-15 19:52:01 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 19:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表