Il semble raisonnable de supposer que T
y const T
seraient deux types qui auraient la même taille et le même alignement, mais après avoir réfléchi à certains systèmes réels, il semble qu'ils pourraient être différents.
Laissez-moi vous expliquer :
Supposons que vous ayez un système avec deux types de mémoire : RAM et Flash (qui est en lecture seule). La RAM est adressable sur 8 bits, tandis que la Flash n'est adressable que sur 16 bits. Supposons que T
:
struct T
{
uint8_t x;
uint16_t y;
};
Dans la RAM adressable par octet, cette structure aurait une longueur de 3 octets.... mais dans la Flash adressable par double octet (qui est l'endroit où un const
résiderait), cette structure devrait avoir une longueur d'au moins 4 octets, en raison de problèmes d'alignement.
Voici donc ma question :
Les normes c et c++ garantissent-elles les tailles et l'alignement des const
et non const
types ?