C 마이크로프로세서 프로그래밍/Struct: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Dolicom (토론 | 기여)
Dolicom (토론 | 기여)
303번째 줄:
</source>
 
[[http://ko.wikipedia.org/wiki/파일:Struct_map_exam1.png|thumb|200px| struct 메모리 배치 예 - 32비트 CPU (little-endian).]]
 
일반적으로 32비트의 little-endian CPU로 컴파일 하면, struct의 멤버의 메모리 배치는 그림과 같이 배치 된다. 정수형 int 사이에 char 변수는 4바이트 중에 한 바이트만을 사용하고 나머지 3바이트를 사용하지 않는다. 이것은 변수 id가 32비트 단위로 액세스 되어야 하므로 어쩔 수 없이 빈 공간을 넣는 방법으로 배치한 것이다. 이 struct의 크기는 빈공간 까지를 포함한 크기로 취급한다. <tt>sizeof(struct Man) == 28</tt>바이트가 된다.