Condividi tramite


Operatore di __alignof

Specifici di Microsoft

restituisce un valore, di tipo size_t, ovvero il requisito di allineamento del tipo.

__alignof( 
   type  
)

Note

Di seguito è riportato un esempio:

Espressione

Valore

__alignof (char)

1

__alignof (breve)

2

__alignof (int)

4

__alignof (__int64)

8

__alignof (float)

4

__alignof (double)

8

__alignof (argomento char*)

4

__alignof il valore è uguale al valore per sizeof per i tipi di base.Considerare, tuttavia, il seguente esempio:

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

in questo caso, __alignof il valore è il requisito di allineamento di più grande elemento della struttura.

Analogamente, per

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

__alignof(S) è uguale a 32.

un utilizzo per __alignof essere passati come parametro a uno dei proprietari delle routine di allocazione della memoria.Ad esempio, data la seguente struttura definita S, è possibile chiamare una routine di allocazione della memoria denominata aligned_malloc per allocare memoria sul limite di allineamento particolare.

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

Per ulteriori informazioni sulla modifica l'allineamento, vedere:

Vedere anche

Riferimenti

Espressioni con gli operatori unari

Parole chiave C++