当前位置: 代码迷 >> 单片机 >> 嵌入式 C语言 循环 数组解决办法
  详细解决方案

嵌入式 C语言 循环 数组解决办法

热度:430   发布时间:2016-04-28 14:47:38.0
嵌入式 C语言 循环 数组
1 先介绍一下自己:我学习过C语言(谭浩强的),然后51单片机的程序写过几个模块,复杂的没接触过,前段时间看同事的程序,又是指针,又是循环数组,又是堆和栈,还有啥队列,如果小弟也想学习这方面的知识,我该看什么书啊?
2 我想写一个程序段:包含如下功能:先向一个数组中写入5个数据(unsigned char 类型),然后每次再向该数组中写入1个数据,这个数据替换之前最前面的那个数据(按照先进先出原则),然后这个数据和之前的4个数据重新构成一个完整的数据包,如此循环~~~想请大神给个思路,小弟不知道如何入手,感谢了~~~

------解决思路----------------------
本帖最后由 wangfan027 于 2015-01-13 15:18:48 编辑
这个我很简单啊


typedef struct
{
  uchar ch1;//5字节的数据结构,根据实际情况自己定义
  long lg;
}PACK_T;
PACK_T pk;
void uppk(uchar newbyte)
{
  uchar * ptr;

  ptr=(uchar*)&pk;
 for(i=0;i<4;i++)
  {
    *ptr=*(ptr+1);
    ptr++;
}
  *ptr=newbyte;

就字节移位的问题
------解决思路----------------------
用环形缓冲区ringbuffer。不需要移动数据。去库里找这个模块,或者自己写一个也可以。只是多用几个变量,需要读指针和写指针,尤其适合比较大的数据量。按你的应用,只需要一个写指针,每次写之后指针加一,到5时归0
  相关解决方案