@bitSizeOf

@bitSizeOf

@bitSizeOf는 타입이 메모리에서 차지하는 비트 수를 돌려주는 내장 함수예요. 특히 이 타입을 packed struct/packed union의 필드로 쓴다고 가정할 때가 핵심인데, 일반 @sizeOf가 바이트 단위로 재는 것과 달리 @bitSizeOf는 비트 단위로 재는 함수라고 이해하면 쉬워요.

출처: Zig Documentation

본문

@bitSizeOf(comptime T: type) comptime_int

이 함수는 Tpacked struct/packed union의 필드로 넣었을 때 메모리에 저장하는 데 필요한 비트 수를 반환합니다. 결과는 타깃에 따라 달라지는 컴파일 타임 상수예요.

한 가지 성격이 특이한 점은, 이 함수가 런타임 기준으로 크기를 재는 함수라는 거예요. 그래서 런타임에 허용되지 않는 타입들, 대표적으로 comptime_inttype 같은 타입은 결과가 0이 됩니다.

같이 보기

더 알아보기

  • @sizeOf — 타입이 메모리에서 차지하는 바이트 수를 구하는 내장 함수 (@bitSizeOf는 비트 단위)
  • @typeInfo — 타입의 컴파일 타임 메타데이터를 조회하는 내장 함수
  • packed struct, packed union — 비트 단위 배치를 다룰 때 @bitSizeOf가 유용하게 쓰이는 곳