alignof
Operator
Operator alignof
zwraca wyrównanie w bajtach określonego typu jako wartość typu size_t
.
Składnia
alignof( type )
Uwagi
Przykład:
Expression | Wartość |
---|---|
alignof( char ) |
1 |
alignof( short ) |
2 |
alignof( int ) |
4 |
alignof( long long ) |
8 |
alignof( float ) |
4 |
alignof( double ) |
8 |
Wartość alignof
jest taka sama jak wartość dla sizeof
typów podstawowych. Rozważmy jednak następujący przykład:
typedef struct { int a; double b; } S;
// alignof(S) == 8
W tym przypadku alignof
wartość jest wymaganiem wyrównania największego elementu w strukturze.
Podobnie, dla
typedef __declspec(align(32)) struct { int a; } S;
alignof(S)
jest równa 32
.
Jednym z nich alignof
jest parametr do jednej z własnych procedur alokacji pamięci. Na przykład, biorąc pod uwagę następującą zdefiniowaną strukturę S
, można wywołać procedurę alokacji pamięci o nazwie aligned_malloc
w celu przydzielenia pamięci na określonej granicy wyrównania.
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));
Aby uzyskać więcej informacji na temat modyfikowania wyrównania, zobacz:
Aby uzyskać więcej informacji na temat różnic w wyrównaniu kodu dla x86 i x64, zobacz:
specyficzne dla firmy Microsoft
alignof
i __alignof
są synonimami w kompilatorze firmy Microsoft. Zanim stał się częścią standardu w języku C++11, operator specyficzny dla __alignof
firmy Microsoft udostępnił tę funkcję. Aby uzyskać maksymalną przenośność, należy użyć alignof
operatora zamiast operatora specyficznego dla firmy __alignof
Microsoft.
Aby uzyskać zgodność z poprzednimi wersjami, jest synonimem, _alignof
__alignof
chyba że określono opcję /Za
kompilatora (Wyłącz rozszerzenia języka).
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla