#pragma pack
Struct test
{
Char a; //1byte
Int b; //4byte
}test;
(short = 2byte)
구조체 test의 크기는 ? = 8 byte
구조체의 크기 할당에는 크기가 가장 큰 자료 형을 기준으로 배수만큼 커진다.
test에서는 char (1byte ) + int (4byte) = 총 5바이트가 필요하므로 8 바이트가 할당된다
->> 이유는 CPU가 접근하기 쉬운 위치에 필드를 배치하기 위함이다
이 과정에서는 3 byte의 메모리 낭비가 발생한다
#pragma pack(push, n) // n은 정렬할 크기 1, 2, 4, 8, 16만 유효, 디폴트 8
#pragma pack(pop) // pragma pack(push, n)해제
'> 개념' 카테고리의 다른 글
[게임 수학] 벡터의 내적과 외적 활용 (0) | 2024.01.06 |
---|---|
[C++] 생성자 (0) | 2023.12.01 |
[C++] 변수와 메모리 공간 (0) | 2023.11.24 |
[게임 수학] 사원수 (Quaternion) (0) | 2023.06.04 |
[C++] Hash (0) | 2023.06.04 |