`_Alignof` 키워드

_Alignof 키워드

어떤 타입이 메모리에서 몇 바이트 단위로 정렬돼야 하는지, 그 정렬 요구(alignment requirement) 를 궁금해할 때가 있어요. 그 값을 직접 물어볼 때 쓰는 키워드가 _Alignof예요. C23부터는 alignof라는 이름을 써요.

출처: cppreference

본문

_Alignof는 C11부터 도입된 정렬 요구 연산자(aligment operator) 키워드예요. 타입의 정렬 값을 size_t로 돌려줘요.

  • C23에서 alignof 키워드로 대체되면서 _Alignof는 폐기(deprecated)됐어요.

사용

_Alignof는 다음과 같이 사용해요 (since C11).

size_t a = _Alignof(struct sse_t); // 16

더 알아보기

  • 정렬 요구를 설정하는 키워드 _Alignas/alignas와 짝을 이뤄요.
  • 정렬(alignment)의 개념 자체는 객체와 정렬 문서에서 더 자세히 볼 수 있어요.
  • cppreference의 _Alignof 원문을 참고해요.