Partilhar via


Agregados e uniões

Outros tipos, sistema autônomo arrays, structs e uniões têm requisitos de alinhamento mais rígidos que garantem consistente união e agregar dados e armazenamento recuperação.Aqui estão as definições de matriz, estrutura e união:

  • Matriz
    Contém um agrupar ordenado de objetos de dados adjacentes.Cada objeto é chamado de um elemento.Todos os elementos em um array ter o mesmo dimensionar e o tipo de dados.

  • Estrutura
    Contém um agrupar ordenado de objetos de dados.Diferentemente de elementos de uma matriz, os objetos dentro de uma estrutura de dados podem ter diferentes tipos de dados e tamanhos.Cada objeto em uma estrutura de dados é chamado de um membro.

  • União
    Um objeto que contém qualquer um de um conjunto de membros com nomes.Os membros do conjunto nomeado podem ser de qualquer tipo.O armazenamento alocado para uma união é igual ao armazenamento necessário para o membro maior essa união, além de qualquer preenchimento necessários para alinhamento.

A tabela a seguir mostra o alinhamento altamente sugerido para os membros escalar de uniões e estruturas.

Tipo escalar

Tipo de dados c

Alinhamento necessário

INT8

char

Byte

UINT8

unsigned char

Byte

INT16

short

Word

UINT16

unsigned short

Word

INT32

int, longo

Doubleword

UINT32

int não assinado, unsigned long

Doubleword

INT64

__int64

Quadword

UINT64

unsigned __int64

Quadword

FP32 (precisão simples)

float

Doubleword

FP64 (precisão duplas)

double

Quadword

PONTEIRO

*

Quadword

__m64

__m64 struct

Quadword

__m128

__m128 struct

Octaword

As regras de alinhamento agregadas a seguir se aplicam:

  • O alinhamento de uma matriz é a mesma sistema autônomo o alinhamento de um dos elementos da matriz.

  • O alinhamento do início de uma estrutura ou uma união é o alinhamento máximo de qualquer membro individual.Cada membro dentro da estrutura ou união deve ser colocado em seu alinhamento adequado, conforme definido na tabela anterior, que pode exigir implícito preenchimento interno, dependendo do membro anterior.

  • dimensionar de estrutura deve ser um múltiplo inteiro do seu alinhamento, que pode exigir preenchimento após o último membro.Desde que as estruturas e uniões podem ser agrupados em arrays, cada elemento da matriz de uma estrutura ou união deve começam e terminam com o alinhamento adequado previamente determinado.

  • É possível alinhar sistema autônomo dados de forma a ser maior do que sistema autônomo requisitos de alinhamento, desde que sistema autônomo regras anteriores são mantidas.

  • Um compilador individual pode ajustar a remessa de uma estrutura por motivos de dimensionar.Por exemplo, /Zp (alinhamento de membro da struct) permite o ajuste de remessa de estruturas.

Consulte também

Referência

Tipos e armazenamento