Freigeben über


__alignof-Operator

Microsoft-spezifisch

Gibt einen Wert vom Typ size_t zurück, der der Ausrichtungsanforderung des Typs entspricht.

__alignof( 
   type  
)

Hinweise

Beispiel:

Ausdruck

Wert

__alignof (char)

1

__alignof (short)

2

__alignof (int)

4

__alignof (__int64)

8

__alignof (float)

4

__alignof (double)

8

__alignof (char*)

4

Der __alignof-Wert entspricht dem sizeof-Wert für Basistypen. Betrachten Sie jedoch das Beispiel:

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

In diesem Fall ist der __alignof-Wert die Ausrichtungsanforderung des größten Elements in der Struktur.

Entsprechend gilt:

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

__alignof(S) ist gleich 32.

Eine Verwendung für __alignof wäre als Parameter für eine Ihrer Speicherbelegungsroutinen. Beispielsweise könnten Sie angesichts der folgenden definierten Struktur S eine Speicherbelegungsroutine mit dem Namen aligned_malloc aufrufen, um einen bestimmten Grenzwert mit Speicher zu belegen.

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));

Weitere Informationen über das Ändern der Ausrichtung finden Sie unter:

Siehe auch

Referenz

Ausdrücke mit unären Operatoren

C++-Schlüsselwörter