간만에 struct.pack 을 사용하게 돼서 고군분투(?)하는데, 뜬금없이 struct.calcsize('3BH') 를 해보니 6 이 나온다.
C compiler 가 선호하는 alignment(preferred alignment of the C compiler) 를 사용하기 때문에 알아서 padding 을 넣어준 것인데, endian 을 지정해 줘야 padding 을 하지 않는다고 한다.[ref. 2 ]
byte alignment 에 관한 내용은 ref. 3 을 참고하자.
여하튼 그래서 '<'(little endian) 을 format 에 넣어줬더니 잘 동작한다.
struct.calcsize('<3BH')
댓글 없음:
댓글 쓰기