[C++] 구조체 정렬 크기 조절하기
C/C++에서 다음과 같이 구조체를 정의할 경우 구조체의 크기는 다음과 같습니다. struct PlayerData{ int32_t age; //4 int16_t height; //2 }; void main() { printf("PlayerData 크기: %d\n", sizeof(PlayerData)); } 크기: 8 이는 성능의 최적화를 위해 컴파일러에서 구조체의 크기를 가장 큰 데이터인 int32_t의 배수로 정의했기 때문입니다. 그러나, 네트워크를 통해 바이트 배열 데이터를 받아 바로 구조체에 넣고 싶다면 구조체의 크기가 정의된 데이터 크기와 일치해야 합니다. 이럴 때, 다음과 같이 구조체의 정렬 크기를 조절할 수 있습니다. #pragma pack(push, 1) struct PlayerData{ i..