Os bytes de preenchimento de um tipo de POD são copiados?
Suponha que eu tenha um tipo de POD como este:
struct A {
char a;
int b;
};
No meu sistema,sizeof(A) == 8
, Apesar desizeof(char) == 1
esizeof(b) == 4
. Isso significa que a estrutura de dados possui 3 bytes não utilizados.
Agora, suponha que sim
A x = ...;
A y =x;
Pergunta, questão:
É garantido que todos os 8 bytes dex
ey
será idêntico, mesmo aqueles 3 não utilizados?
Da mesma forma, se eu transferir os bytes subjacentes de algunsA
objetos para outro programa que não entende seu significado ou estrutura e os trata como uma matriz de 8 bytes, esse outro programa pode comparar com segurança doisA
s pela igualdade?
Nota:Em um experimento com o gcc 7, parece que esses bytes são copiados. Gostaria de saber se isso é garantido.