본문 바로가기

Programming/C, C++

구조체크기할당조절 pragma pack

<형태>

#pragma pack(push, 크기)

#pragma pack (pop)

 

<예시>

<메모>

주로 구조체에서 서로다른 자료형을 이용하는경우 메모리 최적화를 위하여 사용한다.

 

예시의 출력결과는 9이다.

int형, char형, float형이 각각 하나씩 있으니 총 9Byte의 공간을 차지하기 때문이다.

 

만약 3,10줄을 지운뒤 코드를 실행시켜본다면 출력결과는 12가 될 것이다.

가장 큰 자료형의 크기가 4Byte이기 때문에 모든 자료형에 똑같이 4Byte씩을 할당하였기 때문이다.

 

#pragma pack의 분할 크기는 1,2,4,8,16 등이 모두 가능하다.

'Programming > C, C++' 카테고리의 다른 글

scanf와 scanf_s의 차이  (0) 2020.02.07
메모리의 동적할당 malloc  (0) 2020.02.07
열거형 enum  (0) 2020.02.05
#if ~ #endif  (0) 2020.02.04
타입변환과 구조체TIP  (0) 2020.02.04