首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

二维字符数组的清空解决方法

2013-02-25 
二维字符数组的清空最近做一单片机程序,单片机型号ATmega32A。程序中有一个unsigned char ch[8][128]程序

二维字符数组的清空
最近做一单片机程序,单片机型号ATmega32A。
程序中有一个unsigned char ch[8][128];
程序中需要反复将其清空。最好是一组一组的清空。即是ch[0]清空,ch[1]清空,ch[2]清空……
现在用的是
  for (CtI=0;CtI<8;CtI++)
  {
    for (CtJ=0;CtJ<128;CtJ++)
    {
      DisplayRam[CtI][CtJ]=0;
    }
  }

求快速清空方法。 单片机,数组
[解决办法]

memset(DisplayRam,0,1024);

[解决办法]
memset(DisplayRam,0,1024);
[解决办法]
上面那个应该是最简洁的方法了,我记不清是不是还要添加对应的头文件。
[解决办法]
memset 的底层实现,还是逐字节写入的。

如果是 32 位机,可以自己写一个 memsetw 函数,每次写入一个 32-bit 字。

void memsetw(unsigned long *pBuff, unsigned long value, unsigned long len)
{
    while(len--) pBuff[len] = value;
}

调用如下:

memsetw((unsigned long *)DisplayRam, 0x00000000, 256);
[解决办法]
用指针,当作一维数组处理。

热点排行