相关疑难解决方法(0)

关于循环缓冲区中简洁索引处理的建议

我已经实现了一个循环缓冲区,我想要一个简洁的方法来更新缓冲区指针,同时正确处理环绕.

假设一个大小为10的数组,我的第一个响应是:

size_t ptr = 0;  
// do some work...
p = ++p % 10;
Run Code Online (Sandbox Code Playgroud)

静态分析,以及gcc -Wall -Wextra,由于序列点违规而正确地拍了我的手腕以查找未指定的行为.明显的修复方法如下:

p++;
p %= 10;
Run Code Online (Sandbox Code Playgroud)

然而,我正在寻找更简洁的东西(即一个单行)来"封装​​"这个操作.建议?除了p ++之外; p%= 10; :-)

c c99 sequence-points

2
推荐指数
1
解决办法
265
查看次数

标签 统计

c ×1

c99 ×1

sequence-points ×1