Namespaces
Variants

max_align_t

From cppreference.net
< c ‎ | types
Défini dans l'en-tête <stddef.h>
typedef /*implementation-defined*/ max_align_t ;
(depuis C11)

max_align_t est un type dont l'exigence d'alignement est au moins aussi stricte (aussi grande) que celle de tout type scalaire.

Table des matières

Notes

Les pointeurs retournés par les fonctions d'allocation telles que malloc sont correctement alignés pour tout objet, ce qui signifie qu'ils sont alignés au moins aussi strictement que max_align_t .

Exemple

#include <inttypes.h>
#include <stdalign.h>
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    size_t a = alignof(max_align_t);
    printf("Alignment of max_align_t is %zu (%#zx)\n", a, a);
    void *p = malloc(123);
    printf("The address obtained from malloc(123) is %#" PRIxPTR"\n",
            (uintptr_t)p);
    free(p);
}

Sortie possible :

Alignment of max_align_t is 16 (0x10)
The address obtained from malloc(123) is 0x1fa67010

Références

  • Norme C23 (ISO/IEC 9899:2024) :
  • 7.19 Définitions communes <stddef.h> (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.19 Définitions communes <stddef.h> (p: 211)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.19 Définitions communes <stddef.h> (p: 288)

Voir aussi

Documentation C++ pour max_align_t