注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

tiankai001的个人空间 http://home.eeworld.com.cn/space-uid-139222.html [收藏] [复制] [分享] [RSS]

日志

msp430单片机开发实录(18)

已有 112 次阅读2018-12-21 09:19 |个人分类:Proteus for msp 430




此内容由EEWORLD论坛网友tiankai001原创,如需转载或用于商业用途需征得作者同意并注明出处







msp430单片机开发实录(18)


现象:
在函数起始位置,定义了一个数组,并且给这个数组的所有元素赋了一个初值,使用下面的语句。
  1. unsigned char ucRamToMemory[70]={0x08};
复制代码


但是在函数中使用这个数组中的数据时,发现这个数组中只有第一个数组元素的值是0x70,而其余数组元素的值不是0x70。


试验:
因为之前函数中定义数组时,一般都会习惯上把所有数组元素的初值,初始化为0,常用下面的语句。
  1. unsigned char ucKxAndVol[70]={0x00};
复制代码

在使用中实实在在的,数组中所有元素的初值都是0。
这个其实涉及到C语言的知识,C语言中,在定义数组时,如果想把所有数组元素的初值设为0,那么是可以使用上述语句的。
但是如果要把数组元素的初值在定义时设置为非0的数据,就不能用这种语句了,只能给数组元素分别赋值,或者使用下面的语句
  1. memset(RecData,0x58,100);//将数组中的前100个元素的值都设置为0x58
复制代码




验证:
因为想要把数组的所有元素都设置为一个非零值,所以对数组中的所有元素分别赋值,验证后,一切正常。
再使用memset语句对数组元素设置为非零的数值,验证后,一切正常。
备注:
关于数组元素的赋值,在编程时要注意,定义的同时赋值的话,即使赋值相同的数据,如果该值不为零,那就需要一个一个赋值。

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-6-25 05:37 , Processed in 0.032380 second(s), 11 queries , Gzip On, MemCache On.

Powered by EEWORLD电子工程世界

© 2019 http://bbs.eeworld.com.cn/

返回顶部