Sdílet prostřednictvím


__alignof operátora

Konkrétní společnosti Microsoft

Vrátí hodnotu typu size_t, je požadavek zarovnání typu.

__alignof( 
   type  
)

Poznámky

Příklad:

Výraz

Value

__alignof (char)

1

__alignof (krátké)

2

__alignof (int)

4

__alignof (__int64)

8

__alignof (plovoucí)

4

__alignof (double)

8

__alignof (char *)

4

__alignof Hodnota je stejná jako hodnota pro sizeof pro základní typy.Zvažte však tento příklad:

typedef struct { int a; double b; } S;
// __alignof(S) == 8

V tomto případě __alignof hodnota je požadavek zarovnání největšího prvku ve struktuře.

Podobně pro

typedef __declspec(align(32)) struct { int a; } S;

__alignof(S)je rovno 32.

Pro jedno použití __alignof by bylo jako parametr pro jednu vlastní rutiny přidělení paměti.Například dané následující definice struktury S, nelze volat rutina přidělení paměti s názvem aligned_malloc přidělení paměti na hranici zejména zarovnání.

typedef __declspec(align(32)) struct { int a; double b; } S;
int n = 50; // array size
S* p = (S*)aligned_malloc(n * sizeof(S), __alignof(S));

Další informace o úpravách zarovnání v následujících tématech:

Viz také

Referenční dokumentace

Výrazy s unární operátory

Klíčových slov jazyka C++