반응형 #pragma pack1 C014_구조체 정렬하기 C언어에서 구조체를 정렬할 때 멤버 중에서 가장 큰 자료형 크기의 배수로 정렬하게 됩니다. 예를 들어 Person이라는 구조체가 아래와 같이 구성되었다고 가정해 봅시다. struct Person { int age; char flag; }; 위와 같이 구성이 되면 이 구조체의 전체 크기는 8바이트가 됩니다. 가장 큰 int자료형을 기준으로 세는 것이지요. 이렇게 되면 3바이트를 낭비하게 됩니다. 낭비가 생기는 것을 알면서도 컴파일러가 이렇게 처리하는 이유는 CPU가 접근하기 쉬운 위치에 변수들을 배치하기 때문에 4바이트 또는 8바이트 단위로 끊는 바이트 패딩 작업을 수행하는 것입니다. 이때 중간중간 빈 공간이 생깁니다. 다른 컴퓨터(시스템)에서 진행을 하게 되면 끊는 바이트 단위가 바뀔 수도 있습니다. 그.. 2023. 9. 16. 이전 1 다음 반응형