max_align_t
From cppreference.net
|
Определено в заголовочном файле
<stddef.h>
|
||
|
typedef
/*implementation-defined*/
max_align_t
;
|
(начиная с C11) | |
max_align_t
— это тип, требование выравнивания которого является по крайней мере таким же строгим (таким же большим), как и у любого скалярного типа.
Содержание |
Примечания
Указатели, возвращаемые функциями выделения памяти, такими как
malloc
, имеют подходящее выравнивание для любого объекта, что означает, что они выровнены как минимум так же строго, как
max_align_t
.
Пример
Запустить этот код
#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); }
Возможный вывод:
Alignment of max_align_t is 16 (0x10) The address obtained from malloc(123) is 0x1fa67010
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.19 Общие определения <stddef.h> (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.19 Общие определения <stddef.h> (стр: 211)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.19 Общие определения <stddef.h> (стр: 288)
Смотрите также
|
Документация C++
для
max_align_t
|