struct a {

  char aa;

  int    bb;

}

와 같이 정의한경우

 

메모리 구조는

char aa 1byte

사용않되는 영역 4byte

int bb 4바이트 처럼

 

struct a를 사용하개 되면 메모리에 8바이트가

사용된다 이유는

struct를 사용하는 경우 멤버들은

각 OS의 비트수에 따라

그 시작 위치를 지정한다,

이는 속도를 높이기 위한 방편이다.

 

char aa가 0x7830에 위치에 있다고 가정하면

int bb는 0x7834에 위치하게 된다.

즉 char aa와 int bb 사이 3바이는 사용되지 않지만

메모리는 할당되어 있는 상태가 된다.

 

이처럼 struct 사용시 속도를 위한 각 멤버의

메모리 위치를 지정하는 것을 막기위해서는

 

#prgma pack(1)을 선언하고 사용한다.

 

 

+ Recent posts