alias
alias (타입 별칭)
C언어 바인딩을 다루다 보면 struct, union, enum처럼 타입 이름이 길어지기 마련이에요. lib 안에서 alias를 쓰면 C의 typedef와 같은 역할을 하는 타입 별칭을 선언할 수 있어요.
본문
lib 안에서 alias 선언은 C의 typedef를 선언한 것과 같아요.
lib X
alias MyInt = Int32
end
이제 Int32와 MyInt는 서로 바꿔 쓸 수 있어요.
lib X
alias MyInt = Int32
fun some_fun(value : MyInt)
end
X.some_fun 1 # OK
alias는 길어지는 타입을 반복해서 쓰지 않게 해 주는 데 가장 유용하지만, 컴파일 타임 플래그에 따라 타입을 다르게 선언하는 데도 쓸 수 있어요.
lib C
{% if flag?(:x86_64) %}
alias SizeT = Int64
{% else %}
alias SizeT = Int32
{% end %}
fun memcmp(p1 : Void*, p2 : Void*, size : C::SizeT) : Int32
end
위 예시처럼 플랫폼에 따라 타입이 달라져야 하는 C 바인딩을 작성할 때 alias가 아주 큰 역할을 해요. alias 타입에 쓰는 표기법에 대한 자세한 내용은 타입 문법을 참고하세요.