memalignment
|
헤더 파일에 정의됨
<stdlib.h>
|
||
|
size_t
memalignment
(
const
void
*
p
)
;
|
(C23 이후) | |
제공된 주소가 만족하는 최대 정렬을 반환합니다. 반환값은 구현에서 지원하는 어떤 정렬 값보다 클 수 있습니다. 만약
p
가 널 포인터 값이라면,
0
이 반환되어 해당 포인터가 어떤 타입의 객체에도 접근하는 데 사용될 수 없음을 나타냅니다.
반환값이
alignof
(
T
)
이상으로 비교되면, 타입
T
의 정렬 요구사항이 포인터에 의해 충족됩니다.
독립형 구현체는
freestanding implementation
가
memalignment
를 제공해야 합니다.
목차 |
매개변수
| p | - | 쿼리 정렬을 가리키는 포인터 |
반환값
p
의 정렬 값, 또는
p
가 널 포인터 값인 경우
0
입니다.
참고 사항
일반적인 플랫폼에서
이 함수는 다음과 같이 구현할 수 있습니다 return ( size_t ) p & - ( size_t ) p ; .
예제
#include <stdio.h> #include <stdlib.h> int main() { alignas(128) int i = 0; printf("%zu\n%zu\n", memalignment(nullptr), memalignment(&i)); }
가능한 출력:
0 128
참조문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.24.9.1 The memalignment function (p: 374)
참고 항목
|
(C11)
|
정렬된 메모리를 할당함
(함수) |
|
(C23)
|
이전에 할당된 크기 지정 및 정렬된 메모리를 해제함
(함수) |