max_align_t
De cppreference.com
| Definido en el archivo de encabezado <stddef.h>
|
||
typedef /* definido en implementación */ max_align_t;
|
(desde C11) | |
max_align_t es un tipo cuyo requisito de alineación es al menos tan estricto (tan grande) como el de cualquier tipo de escalar.
Observaciones
Los punteros devueltos por funciones de asignación como malloc están alineados adecuadamente para cualquier objeto, lo que significa que están alineados al menos tan estrictamente como max_align_t.
max_align_t es generalmente sinónimo del tipo escalar más grande, que es long double en la mayoría de las plataformas, y su requisito de alineación es 8 o 16.
Ejemplo
Ejecuta este código
#include <stdio.h>
#include <stddef.h>
#include <stdalign.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
int main(void)
{
size_t a = alignof(max_align_t);
printf("La alineación de max_align_t es %zu (%#zx)\n", a, a);
void *p = malloc(123);
printf("La dirección obtenida de malloc(123) es %#" PRIxPTR"\n",
(uintptr_t)p);
free(p);
}
Posible salida:
La alineación de max_align_t es 16 (0x10)
La dirección obtenida de malloc(123) es 0x1fa67010
Véase también
Documentación de C++ para max_align_t
|