#include <stdio.h>
int main(void) {
int i = 0;
int offset = 0;
for(i = 0; i<10 ; i++)
{
printf("%d\n", (256 -offset) / 6);
if((256 - offset) % 6)
{
offset = 6 - (256 - offset) % 6;
}else{
offset = 0;
}
printf("%d\n", offset);
}
return 0;
}
需求是:在buffer里隔6个采一个数据,但buffer大小并不是6的倍数,而buffer需要做内存对齐所以不太好改。buffer是循环写入的,所以一次存不完就要在下一个buffer里进行偏移。
这样来计算offset。
如果取模是0,就让offset = 0,
如果取模不是0,就让6减去模数,得到offset。