바이트 패딩
성능향상을 위해서 클래스나 구조체의 경우,
가장 큰 사이즈를 차지하는 자료타입에 맞춰 현재 데이터타입 뒤에 임의의 바이트를 추가하여
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 |