반응형
먼저 사족으로 설명 한다면, 파이썬만의 문제는 아니다.
요즘 언어가 표준이 그렇게 가고 있기 떄문이다.
그렇다고 모든 언어가 표준을 따르면 인생이 괴롭지 않다.
왜 ...? 세상 사람들이 다 그렇게 하게 때문에 별 생각 없이 살아 가도 된다.
그렇지만 세상은 그렇게 만만하지 않다.
표준을 지키는 사람과 지키지 않는 사람으로 나누게 된다.
본격적으로 왜 이런 상황이 발생 했는지 않아 보자.
struct Person { // 구조체 정의
char a; // 구조체 멤버 1
int b; // 구조체 멤버 2
};
위와 같이 했을경우, 문자는 1바이트, 정수는 4바이트라고 하자
그러면 틀림 없이 5바이트가 정답이다.
sizeof()로 계산 하면 5바이트가 아닌경우가 많다.
왜, 표준이 변했기 떄문이다. 그렇다고 항상 5가 아닐까 ?
표준을 지키지 않는 쪽에서 5바이트다.
쉽게 말해서 정렬바이트를 합쳐서 8바이트를 만들어 버린다.
고정된 크기로 보내면 통신에 유리하기 때문이다.
파일로 만들떄도 비슷한 상황이 발생한다.
struct Person { // 구조체 정의
int b; // 구조체 멤버 1
char a; // 구조체 멤버 2
};
이제 순서를 바꾸어서 보자. 크기가 얼마 일까 ?
정렬바이트를 합쳐서 8바이트 겠지만 또 아니다.
정확인 이야기 하면 아닌경우가 많다.
왜, 표준을 그렇게 만들었기 때문이다.
'파이썬' 카테고리의 다른 글
파이썬 바이너리파일 쓰기 -#3 (0) | 2021.10.03 |
---|---|
파이썬 바이너리파일 쓰기 -#2 (0) | 2021.10.03 |
파이썬 넘파이 그리고 차원, reshape (0) | 2021.07.26 |
AI 공부하면서 #1(Variable, random.uniform) (0) | 2021.07.13 |
pip 인터넷 안될때 설치하기 (0) | 2021.07.08 |
댓글