999
获得 67 次赞
帮助过40人
//OSMemFreeList是指向“空闲内存块结构体”指针,以下简写为list。//你不要弄混,下句中这个list是全局变量,它和OS_MEM的成员list是重名的。pmem=OSMemFreeList;/* 这句就是获取“空闲内存块”,准备用它建立一个动态内存分区,由于要使用这个“空闲内存块”,所以list指向的“空闲内存块”将不再是“空闲”的了。那么就要把list重新指向另一个“空闲内存块”,也就是链表中的下一个。这样程序其它地方才能再调用OSMemCreat获得一个空闲内存块来建立其它内存分区。*//*要更新list,让它指向链表下一个“空闲内存块”,就是下面的代码要做的*/if(OSMemFreeList!=(OS_MEM*)0){ OSMemFreeList=(OS_MEM*)OSMemFreeList->OSMemFreeList;}/*按你的说法:第一个list是全局变量,我们要把它更新,使其指向“空闲内存块链表”中下一个内存块。而链表中下一个“空闲内存块”的地址,就是保存在 “当前准备要使用的的内存块” 的成员“list”里。所以:全局变量list = 当前空白内存块结构体中的list;*/
zhangsf_chongza 发表于 2016-10-26 14:23 不是没定义,是编译通不过,用了#error这个预编译宏 之所以在预处理阶段 会报error,就是因为#if.. 条件不成立,就进入到#else中执行#error了。 要看你#if...的条件了,没帖全代码,也不知道到底是#ifdef 、#ifndef、#if define 。。。
错误: 3行:你写的是unit,而下边用的是uint 4行:少分号 逻辑bug:延时函数,形参z为unsigned int,而下边x为unsigned char(0~255)。 外层for 循环中判断 z 和 x 大小,当传入参数大于254时,就死循环了,即:循环x++永远小于等于255。