C · Avançado · Português · Técnico
padding de struct
Bytes vazios que o compilador insere entre campos de uma struct para respeitar o alinhamento de cada um. Por isso sizeof da struct pode ser maior que a soma dos campos.
Onde usar
Reordenar os campos do maior para o menor costuma reduzir o tamanho da struct. Importa em estruturas com milhões de instâncias e em formatos binários gravados em disco.
Em código
struct ruim { char a; int b; char c; };
struct bom { int b; char a; char c; };
// tipicamente: sizeof ruim = 12, bom = 8Exemplos
Reordenei os campos e o padding de struct caiu pela metade.
O sizeof deu 12 por causa do padding de struct.
Cuidado
Gravar uma struct inteira com fwrite, pois o padding vai junto e o arquivo deixa de ser portável entre plataformas.
Sinônimos
preenchimento