Q:环形缓冲区的意义?避免数值覆盖,减小内存消耗
适用场景
一方写 buffer
另一方读 buffer。
工作原理
① 有读位置、写位置:r、w,它们表示“下一个要读的位置”、“下一个要写的位置”。初
始值都是 0。
② 写数据时:把数据写入 buffer[w],然后调整 w 指向下一个位置(当 w 越界后要从 0
开始)。
③ 读数据时:从 buffer[r]读出数据,然后调整 r 指向下一个位置(当 r 越界后要从 0
开始)。
④ 判断 buffer 为空:r 等于 w 时表示空。
⑤ 判断 buffer 为满:“下一个写位置”等于当前读位置。
编程
为库函数
有读、写、初始化等函数
小知识
避免多次包含某个头文件导致某个宏被重定义