Supposons que j'ai un type POD comme ceci:
struct A {
char a;
int b;
};
Sur mon système, sizeof(A) == 8
, même si sizeof(char) == 1
et sizeof(b) == 4
. Cela signifie que la structure de données a 3 octets inutilisés.
Maintenant, supposons que nous ne
A x = ...;
A y =x;
Question:
Est-il garanti que tous les 8 octets de x
et y
sera identique, même ceux 3 inutilisés?
De manière équivalente, si je transfert le sous-jacent octets de certains A
des objets à un autre programme qui ne permet pas d'en comprendre la signification ou de la structure, et les traite comme un tableau de 8 octets, peut que d'autres programmes en toute sécurité de comparer les deux A
s pour l'égalité?
Remarque: Dans une expérience avec gcc 7, il apparaît que ces octets ne sont copiés. Je voudrais savoir si cela est garanti.