⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buffers.c

📁 本书通过实例介绍了嵌入式编程的方法与技巧书中例子具有实用性
💻 C
字号:

#include<stdlib.h>
#include "globalvar.h"

 /******** For Adding Packets to E2PBuffer ******/
void addE2PBuffer(unsigned char *tempdata,unsigned int length)
{

   struct E2PBuffer *q;
   unsigned int ib1;


	q=malloc(sizeof(struct E2PBuffer));
	q->E2Plink=NULL;
    q->E2Plength=length;

    for( ib1=0;ib1<length;ib1++)
		q->E2Pdata[ib1]=tempdata[ib1];
  			
	if(E2Pfront==NULL)
		E2Pfront=q;
	else
		E2Prear->E2Plink=q;

	E2Prear=q;
//	free(q);
}
/******** For Adding Packets to P2SBuffer ******/
void addP2SBuffer(unsigned char *tempdata,unsigned int length)
{

	struct P2SBuffer *q;
	unsigned int ib2;

	q=malloc(sizeof(struct P2SBuffer));
	q->P2Slink=NULL;
    q->P2Slength=length;

    for(ib2=0;ib2<length;ib2++)
		q->P2Sdata[ib2]=tempdata[ib2];

			
	if(P2Sfront==NULL)
		P2Sfront=q;
	else
		P2Srear->P2Slink=q;
	    
    P2Srear=q;
//	free(q);
	
}
/******** For Deleting Packets From E2PBuffer ******/
struct Delstruct delE2PBuffer(){
	
	struct E2PBuffer *q;
	struct Delstruct s1;
	unsigned int ib5;
   /* unsigned char *data=NULL;    
	data=(unsigned char *) malloc(size*sizeof(char));*/

	if(E2Pfront != NULL)	
    {
		q=E2Pfront;
        for(ib5=0;ib5<q->E2Plength;ib5++)
        {
			s1.Deldata[ib5]=q->E2Pdata[ib5];
	    }
        
	    s1.Dellength=q->E2Plength;
	    E2Pfront=q->E2Plink; 
        free(q);
	    if(E2Pfront==NULL)
			E2Prear=NULL;
	 }

	return(s1);
}
/******** For Deleting Packets From P2SBuffer ******/
struct Delstruct delP2SBuffer(){
	
	struct P2SBuffer *q;
	struct Delstruct s2;
	unsigned int ib6;
    
	if(P2Sfront != NULL)	
    {
		q=P2Sfront;
	    for(ib6=0;ib6<q->P2Slength;ib6++)
		{
			s2.Deldata[ib6]=q->P2Sdata[ib6];
	    }
        s2.Dellength=q->P2Slength;
        P2Sfront=q->P2Slink; 
        free(q);
	    if(P2Sfront==NULL)
			P2Srear=NULL;
	 }

	return(s2);
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -