C Language _Alignof


Exemple

C11

Interroge l'exigence d'alignement pour le type spécifié. L'exigence d'alignement est une puissance intégrale positive de 2 représentant le nombre d'octets entre lesquels deux objets du type peuvent être alloués. En C, l'exigence d'alignement est mesurée en size_t .

Le nom du type peut ne pas être un type incomplet ni un type de fonction. Si un tableau est utilisé comme type, le type de l'élément de tableau est utilisé.

Cet opérateur est souvent accessible via la macro de commodité alignof de <stdalign.h> .

int main(void)
{
    printf("Alignment of char = %zu\n", alignof(char));
    printf("Alignment of max_align_t = %zu\n", alignof(max_align_t));
    printf("alignof(float[10]) = %zu\n", alignof(float[10]));
    printf("alignof(struct{char c; int n;}) = %zu\n",
            alignof(struct {char c; int n;}));    
}

Sortie possible:

Alignment of char = 1
Alignment of max_align_t = 16
alignof(float[10]) = 4
alignof(struct{char c; int n;}) = 4

http://fr.cppreference.com/w/c/language/_Alignof