Queue->MaxData = (SizeOfBuf - (uint32)(((DataQueue *)0)->Buf)) / <br /> sizeof(QUEUE_DATA_TYPE); /* 计算队列可以存储的数据数目 */<br /><br />其中(uint32)(((DataQueue *)0)->Buf))是什么意思?<br />是指空结构体指针指向结构体中的成员吗?<br /><br />参考内容:<br />typedef struct {<br /> QUEUE_DATA_TYPE *Out; /* 指向数据输出位置 */<br /> QUEUE_DATA_TYPE *In; /* 指向数据输入位置 */<br /> QUEUE_DATA_TYPE *End; /* 指向Buf的结束位置 */<br /> uint16 NData; /* 队列中数据个数 */<br /> uint16 MaxData; /* 队列中允许存储的数据个数 */<br /> <br /> uint8 (* ReadEmpty)();/* 读空处理函数*/ <br /> uint8 (* WriteFull)();/* 写满处理函数 */<br /> QUEUE_DATA_TYPE Buf[1]; /* 存储数据的空间 */<br />} DataQueue;<br /><br />SizeOfBuf是Buf的字节长度。<br />QUEUE_DATA_TYPE是指可定义的数据类型可以Uint8,Uint32,等。<br />Queue是DataQueue型结构体。<br /><br /><br /> |
|