OpenEdv-开源电子网

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

关于数组赋值的问题

[复制链接]

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
发表于 2015-1-13 20:55:04 | 显示全部楼层 |阅读模式
5金钱
说来惭愧,有一个基本的问题没有搞清楚,就是如何给数组赋值,我现在是这样的:
USART_RX_BUF[0]=0x5A;
USART_RX_BUF[1]=0xA5;
USART_RX_BUF[2]=0x05;
USART_RX_BUF[3]=0x82;
USART_RX_BUF[4]=0x00;
USART_RX_BUF[5]=0x00;
USART_RX_BUF[6]=0x04;
USART_RX_BUF[7]=0xD2;
如果我不想这样写一大串的话,应该怎么写?  我以为写成 USART_RX_BUF[8]=0x5AA50582000004D2; 这样就可以了,可是事实证明是错的,后来我加上括号,发现也是错的,各位大哥  ,能提醒小弟一下么!!  

最佳答案

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

回复【4楼】shimengdacs: --------------------------------- USART_RX_BUF[8]={0x5A,0xA5,0x05,0x82,0x00,0x00,0x04,0xD2};    这样写是会报错的。 不会报错。 只是你1楼后面的写法会报错。 基础语法问题 要搞明白。否则想不通就不好了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-13 20:55:05 | 显示全部楼层
回复【4楼】shimengdacs:
---------------------------------
USART_RX_BUF[8]={0x5A,0xA5,0x05,0x82,0x00,0x00,0x04,0xD2};    这样写是会报错的。
不会报错。
只是你1楼后面的写法会报错。
基础语法问题 要搞明白。否则想不通就不好了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
 楼主| 发表于 2015-1-13 21:02:06 | 显示全部楼层
再追加一下问题,我要做的是在程序过程中会修改这个数组的值的,而不是赋初值,
回复

使用道具 举报

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
 楼主| 发表于 2015-1-13 21:02:59 | 显示全部楼层
USART_RX_BUF[8]={0x5A,0xA5,0x05,0x82,0x00,0x00,0x04,0xD2};    这样写是会报错的。
回复

使用道具 举报

1

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2012-11-8
在线时间
44 小时
发表于 2015-1-13 21:16:20 | 显示全部楼层
回复【3楼】一个好人:
---------------------------------
最后一种写法不应该会报错,数组有这种初始化方法的,你报的什么错,是不是没加数据类型?
回复

使用道具 举报

0

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-6-7
在线时间
7 小时
发表于 2015-1-13 21:18:20 | 显示全部楼层
http://www.cr173.com/soft/27321.html
我觉得一个一个元素的写可读性最强,尤其在拼凑寄存器的时候
回复

使用道具 举报

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
 楼主| 发表于 2015-1-13 22:36:24 | 显示全部楼层
回复【4楼】shimengdacs:
---------------------------------
再追加一下问题,我要做的是在程序过程中会修改这个数组的值的,而不是赋初值,
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2015-1-14 01:01:48 | 显示全部楼层
写个函数来实现咯。比如:

u8 a[]={0xab,0x12};    // u8 a[]="/0xab/0x12";这样表示可以吗?

for(i=0;i<2;i++)
{
buf=a;
}
a可以通过函数传递过来。
业余程序玩家。
回复

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2015-1-14 09:44:24 | 显示全部楼层
用指针偏移来赋值就可以了!用指针指着你的数组开头。
原子哥是不是又要出黑科技了呀。^_^...
回复

使用道具 举报

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
 楼主| 发表于 2015-1-14 10:11:29 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥  这样写确实不会报错,但是是在定义的时候不会报错,后面不能这样写的!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-1-14 23:27:00 | 显示全部楼层
回复【10楼】一个好人:
---------------------------------
那是当然.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 04:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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