본문 바로가기
::public/C++

byte padding(바이트 패딩)

by 해맑은욱 2023. 1. 18.

바이트 패딩

성능향상을 위해서 클래스나 구조체의 경우,

가장 큰 사이즈를 차지하는 자료타입에 맞춰 현재 데이터타입 뒤에 임의의 바이트를 추가하여  

CPU가 메모리 공간에 접근하기 용이하게 해준다.(컴파일러의 최적화 기능)

 

class BytePadding
{
	int i4;	// 4 byte
	char c[3];	// 3 byte
	short s2;	// 2 byte
};

BytePadding bt;
cout << sizeof(bt) << endl;	// 12 byte
 

int(4 byte) + char(3 byte) + short(2 byte) = 9 byte 로 생각할 수 있지만 결과는

int(4 byte) + char(3 byte) + padding byte(1 byte) + short(2 byte) + padding byte(1 byte) = 12 byte 가 됨.

| i | i | i | i | c | c | c |   | s | s |   |   |   <- 메모리 공간 상태

'::public > C++' 카테고리의 다른 글

(C++11) std::move  (0) 2023.01.31
(C++11) alignas  (0) 2023.01.18
(C++11) chrono  (0) 2023.01.04
GetCurrentDirectory, GetModuleFileName  (0) 2021.07.01
GetTickCount, GetTickCount64  (0) 2021.06.04