ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1204224 Топик полностью
Nikolay801_ (04.05.2022 10:14, просмотров: 168) ответил Moлoдoй кoллeгa на Как это поможет избавиться от условия с проверкой выхода за граници перед переходом на следующий элемент?
если массив по количеству элементов равен степени 2, 3-4-8-16, то можно закруглить наложив маску на индекс. 

Добить размер массива до 256 элементов и будет максимально скорострельно

typedef __packed union{
 uint32_t full; 
struct {
uint32_t lPart : 8; 
uint32_t hPart : 24;  
}part; 
}AddrStruct; 
#pragma data_alignment=256 __root uint8_t aData[256] = {0}; 
AddrStruct astr ={.full = (uint32_t ) &aData[0]}; 
void foo(void){
uint8_t val; 
register AddrStruct reg = astr; 
val = *(uint8_t *) reg.full, reg.part.lPart++; 
astr = reg; 
printf("%d\n", val); 
}
Будь ты проклят, Перри-Утконос!