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