Jak zarovnat strukturu v C na adresu dělitelnou čtyřmi?
Existuje určitě množství způsobů. Já vyzkoušel několik pragma direktiv kompileru ale bez úspěchu. Pokaždé mi kompiler odpověděl, že takovou pragma directivu nezná.
Použil jsem tedy následující trik. Kompiler sám bez výzvy ukládá jednotlivé proměnné velikosti word na správné adresy, aby je mohl adresovat 32bitový MCU. S touto strategií a znalostí jsem přidal jednu dummy proměnou na začátek struktury. Kompiler ji musí umístit na zarovnanou adresu a tudíž i zbytek structury je zarovnán. Věřím a doufám.
Jak byste si pomohli vy?
Zarovnání na 4