alignof
Operatore
L'operatore alignof
restituisce l'allineamento in byte del tipo specificato come valore di tipo size_t
.
Sintassi
alignof( type )
Osservazioni:
Ad esempio:
Expression | Valore |
---|---|
alignof( char ) |
1 |
alignof( short ) |
2 |
alignof( int ) |
4 |
alignof( long long ) |
8 |
alignof( float ) |
4 |
alignof( double ) |
8 |
Il alignof
valore è uguale al valore per per sizeof
i tipi di base. Si consideri, in ogni caso, il seguente esempio:
typedef struct { int a; double b; } S;
// alignof(S) == 8
In questo caso, il alignof
valore è il requisito di allineamento dell'elemento più grande nella struttura.
Analogamente, per
typedef __declspec(align(32)) struct { int a; } S;
alignof(S)
è uguale a 32
.
Un uso per alignof
sarebbe come parametro per una delle proprie routine di allocazione di memoria. Ad esempio, data la seguente struttura definita S
, si potrebbe chiamare una routine di allocazione della memoria denominata aligned_malloc
per allocare memoria su un particolare limite di allineamento.
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 altre informazioni sulla modifica dell'allineamento, vedere:
pack
align
__unaligned
/Zp
(allineamento dei membri struct)- Esempi di allineamento della struttura x64
Per altre informazioni sulle differenze nell'allineamento nel codice per x86 e x64, vedere:
Specifico di Microsoft
alignof
e __alignof
sono sinonimi nel compilatore Microsoft. Prima di diventare parte dello standard in C++11, l'operatore specifico di __alignof
Microsoft ha fornito questa funzionalità. Per garantire la portabilità massima, è consigliabile usare l'operatore alignof
anziché l'operatore specifico __alignof
di Microsoft.
Per la compatibilità con le versioni precedenti, _alignof
è un sinonimo di __alignof
a meno che non sia specificata l'opzione /Za
del compilatore (Disabilita estensioni del linguaggio).
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per