正常的数组下标循环处理
if(i==len){
i = 0;
}
#include<stdio.h>
void main(){
unsigned char arr[] = {
0x0F,0x09,0x03,0x06,0x07,0x0D,0x0C,0x0B
};
int len = sizeof(arr) / sizeof(char);
//循环打印 2次
int i=0;
unsigned int j=0;
while(1){
printf("%#X\n",arr[i]);
i++;
if(i==len){
i = 0;
}
for(j=0;j<300000000;j++);
}
}
使用位操作的下标循环处理
i = i & (len-1);
#include<stdio.h>
void main(){
unsigned char arr[] = {
0x0F,0x09,0x03,0x06,0x07,0x0D,0x0C,0x0B
};
int len = sizeof(arr) / sizeof(char);
//循环打印 2次
int i=0;
unsigned int j=0;
while(1){
printf("%#X\n",arr[i]);
i++;
i = i & (len-1);
for(j=0;j<300000000;j++);
}
}