Udostępnij za pośrednictwem


Agregacje i unie

Innych typów, takich jak tablice, strukturach i związki mają bardziej rygorystyczne wymagania wyrównanie, zapewniających spójny Unii i agregacji przechowywania i pobierania danych.Poniżej przedstawiono definicje dla tablicy, struktury i Unii:

  • Tablica
    Zawiera Uporządkowana grupa obiektów sąsiednich danych.Każdy obiekt nosi nazwę elementu.Wszystkie elementy w tablicy mają ten sam typ danych i rozmiar.

  • Struktura
    Zawiera Uporządkowana grupa obiektów danych.W przeciwieństwie do elementów tablicy obiekty danych w ramach struktury mogą mieć różne typy danych i rozmiary.Każdy obiekt danych w strukturze nosi nazwę członka.

  • Unia
    Obiekt, który posiada dowolny zestaw nazwanych elementów członkowskich.Członkami nazwanego zestawu mogą być dowolnego typu.Pamięć zaalokowana na Unii jest równa obszaru pamięci wymaganego dla największych członka tej Unii, a także bajtami dopełniającymi wymaganych do wyrównania.

W poniższej tabeli przedstawiono mocno polecane wyrównania dla skalarnych członkami związków zawodowych i struktur.

Typ skalarny

Typ danych c

Wyrównanie wymagane

INT8

char

Bajt

UINT8

unsigned char

Bajt

INT16

short

Program Word

UINT16

niepodpisany short

Program Word

INT32

int, długi

Bitowego

UINT32

unsigned int, unsigned długo

Bitowego

INT64

__int64

Quadword

UINT64

unsigned __int64

Quadword

FP32 (Pojedyncza precyzja)

typ float

Bitowego

FP64 (Podwójna precyzja)

double

Quadword

WSKAŹNIK

*

Quadword

__m64

struct __m64

Quadword

__m128

struct __m128

Octaword

Obowiązują następujące reguły agregujące wyrównania:

  • Wyrównanie tablicy jest taka sama, jak wyrównanie jednego z elementów tablicy.

  • Wyrównanie początek strukturę lub związek jest maksymalna wyrównanie któregokolwiek członka indywidualnych.Każdy członek w ramach struktury lub Unii muszą być umieszczone na jego prawidłowe ustawienie, jak zdefiniowano w poprzedniej tabeli, która może wymagać niejawna dopełnienia wewnętrznego, w zależności od poprzedni element członkowski.

  • Rozmiar struktury musi być całkowitą wielokrotnością jej wyrównanie, które mogą wymagać wypychania po ostatnim członkiem.Ponieważ struktury i związków zawodowych mogą być grupowane w tablicach, każdemu elementowi tablicy, struktury lub związek musi rozpocząć i kończy się w prawidłowe ustawienie, które wcześniej ustalona.

  • Istnieje możliwość wyrównać dane w taki sposób, aby być większa niż wymagania co do wyrównania, tak długo, jak poprzednich zasad są utrzymywane.

  • Indywidualne kompilator może dostosować pakowania struktury ze względu na rozmiar.Na przykład /Zp (Wyrównanie członka struktury) pozwala na dopasowanie pakowania struktur.

Zobacz też

Informacje

Typy i magazynowania