怎么计算环形缓冲区长度定义了一个数组 Buff[200],想把它设计成环形缓冲区,写指针:Ptr_ W读指针:Ptr_R问:这个读写之间的缓冲区的长度是怎么计算的呢,用的c语言

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 11:24:23

怎么计算环形缓冲区长度
定义了一个数组 Buff[200],想把它设计成环形缓冲区,
写指针:Ptr_ W
读指针:Ptr_R
问:这个读写之间的缓冲区的长度是怎么计算的呢,
用的c语言

两个函数未经调试

#define MAXLEN 200
int Buff[MAXLEN];
int *Ptr_W = Buff; // 写指针初始化为Buff[0]
int *Ptr_R = NULL; // 读指针初始化为NULL

// 读数据.成功读出时,返回1,x存放读出的结果.不成功返回0,x的内容不可用
int ReadData(int Buff[],int *x) {
    if(Ptr_R == NULL || Ptr_R >= Ptr_W) return 0;
    *x = *Ptr_R;
    Ptr_R += Buff + (Ptr_R - Buff + 1) % MAXLEN;
    return 1;
}

// 写数据.成功写入时,返回.不成功返回0
int WriteData(int Buff[],int x) {
    if(Ptr_R == NULL) { // 初次写入
        Ptr_R = Buff;  // 初次写入时,附带完善读指针的初始化操作
        *Ptr_W++ = x;
        return 1;
    }
    if(Ptr_W == Ptr_R) return 0; // 缓冲区满
    *Ptr_W = x;
    Ptr_W += Buff + (Ptr_W - Buff + 1) % MAXLEN;
    return 1;
}

怎么计算环形缓冲区长度定义了一个数组 Buff[200],想把它设计成环形缓冲区,写指针:Ptr_ W读指针:Ptr_R问:这个读写之间的缓冲区的长度是怎么计算的呢,用的c语言 怎么定义一个数组 C#中 定义了一个数组L,数据类型为string,大小为500那么L.Length获取的是数组总长度还是数组中已有值的长度? 定义了二维数组B(2to6,4)则该数组的元素个数为多少个?怎么计算,我想要计算方法, C 如何定义一个未知长度的数组 C 如何定义一个未知长度的数组 二维数组怎么定义 怎么定义数组 c语言中数组长度定义为10e16怎么定义 matlab中符号变量怎么比较大小?计算得到了一个数组:m[100],怎么找出其中的最大项?是符号数组,开头定义了syms m; 在Lingo中,怎么定义一个数组为0.1变量. 在vf中,怎么定义一个数值型的数组? C#定义一个长度为100的数组,往数组里面随机添加1-100个数,不能重复 matlab 怎样定义一个数组,它的每个元素是一个向量,且向量长度不等? 怎么求一个不知道数组元素个数的数组长度 11、若有定义char x[ ]=”12345”;char y[ ]={’1’,’2’,’3’,’4’,’5’};则A.x数组遇y数组的长度相同 B.x数组长度大于y的长度C.x数组长度小于y的数组长度 C.x数组等价于y数组 如何在C语言中计算一个数组的长度?回车符号长度是否为0? 定义一个长度为3*4的整数组,输出该数组的最大值和最小值