Namespaces
Variants

max_align_t

From cppreference.net
< c ‎ | types
Definiert im Header <stddef.h>
typedef /*implementation-defined*/ max_align_t ;
(seit C11)

max_align_t ist ein Typ, dessen Ausrichtungsanforderung mindestens so streng (so groß) ist wie die jedes skalaren Typs.

Inhaltsverzeichnis

Hinweise

Von Allokierungsfunktionen wie malloc zurückgegebene Zeiger sind für jedes Objekt geeignet ausgerichtet, was bedeutet, dass sie mindestens so streng ausgerichtet sind wie max_align_t .

Beispiel

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

Mögliche Ausgabe:

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

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.19 Allgemeine Definitionen <stddef.h> (S: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.19 Allgemeine Definitionen <stddef.h> (S: 211)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.19 Allgemeine Definitionen <stddef.h> (S: 288)

Siehe auch

C++ Dokumentation für max_align_t