C 타입 기본형
C 타입 기본형 (C Type Primitives)
Zig에서 C 코드와 연동할 때, C의 타입을 그대로 쓸 수 있으면 얼마나 편할까요? 그래서 Zig는 이 문제를 위한 타입을 따로 준비해 두었어요.
본문
아래 타입들은 C ABI와의 호환성이 보장되어 있어요. 그러니까 C 쪽과 메모리 레이아웃이 정확히 맞아떨어지기 때문에, Zig 코드 안에서도 다른 타입처럼 그냥 자유롭게 쓸 수 있답니다.
c_char // C의 char
c_short // C의 short
c_ushort // C의 unsigned short
c_int // C의 int
c_uint // C의 unsigned int
c_long // C의 long
c_ulong // C의 unsigned long
c_longlong // C의 long long
c_ulonglong // C의 unsigned long long
c_longdouble // C의 long double
여기서 한 가지 짚고 넘어갈 게 있어요. C의 void 타입은 위 목록에 없죠? C의 void와 연동해야 할 땐 anyopaque를 쓰면 돼요. void처럼 "형태가 정해지지 않은 타입"을 Zig에서는 anyopaque로 표현하거든요.
더 알아보기
- 원래 Zig 타입 체계에 대한 설명은 Primitive Types 문서를 참고하면 좋아요.