Compartilhar via


operador de __alignof

Específicos do Microsoft

Retorna um valor, do tipo size_t, isto é o requisito de alinhamento do tipo.

__alignof( 
   type  
)

Comentários

Por exemplo:

Expression

Valor

__alignof (char)

1

__alignof (abreviada)

2

__alignof (int)

4

__alignof (_ _ Int64)

8

__alignof (float)

4

__alignof (duplo)

8

__alignof (char *)

4

O __alignof valor é o mesmo que o valor de sizeof para tipos básicos.Considere, no entanto, este exemplo:

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

Nesse caso, o __alignof valor é o requisito de alinhamento do elemento maior na estrutura.

Da mesma forma, para

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

__alignof(S)é igual a 32.

Um uso __alignof seria como um parâmetro para uma das suas próprias rotinas de alocação de memória.Por exemplo, considerando o seguinte definido estrutura S, você poderia chamar uma rotina de alocação de memória chamada aligned_malloc ao alocar memória em um limite determinado de alinhamento.

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

Para obter mais informações sobre a modificação de alinhamento, consulte:

Consulte também

Referência

Expressões com operadores unários

Palavras-chave C++