@Int — 부호와 비트 폭을 지정해 정수 타입 만들기
@Int — 부호와 비트 폭을 지정해 정수 타입 만들기
Zig에는 정수 타입이 정말 많아요. u8, i32 같은 평범한 것뿐 아니라, u18처럼 우리가 원하는 비트 폭의 정수 타입도 직접 만들어 쓸 수 있어요. 이때 유용한 게 내장 함수 @Int입니다. 부호(signedness)와 비트 수만 정해 주면, 그에 맞는 정수 타입을 컴파일 타임에 만들어 주는 함수예요. 어떻게 쓰는지 바로 살펴볼게요.
본문
@Int(comptime signedness: std.lang.Signedness, comptime bits: u16) type
@Int는 주어진 부호와 비트 폭을 가진 정수 타입을 반환해요.
예를 들어, @Int(.unsigned, 18)은 u18이라는 타입을 돌려줘요.
두 인자 모두 comptime이기 때문에, 값은 컴파일 타임에 정해져 있어야 해요. signedness는 std.lang.Signedness로 부호 있는(.signed) 타입을 만들지, 부호 없는(.unsigned) 타입을 만들지 결정하고, bits는 정확한 비트 폭을 지정해요.
더 알아보기 (Learn more)
- 정수 (Integers) — Zig의 정수 타입 전반을 다루는 문서예요.
- @typeInfo — 어떤 타입이 만들어졌는지 컴파일 타임에 살펴보고 싶을 때 써요.