개요
구조체는 가장 높은 자료형 단위로
padding
함
구조체 read의 비효율 해소
아래와 같은 상황에서 32Bit 운영체제는 long long (8 Byte) 하나 읽자고 3번 접근해야 함 따라서 char(1Byte)뒤에 3Byte 패딩을 해줘서 long long을 읽을때는 2번만 접근할 수 있도록 padding 해줌 하지만 자료형이 차지하는 크기는 운영체제마다 다르므로 padding이 목적과 다르게 되는 경우가 있으므로 #pragma pack(크기)이나 직접 구조체에 dummy를 추가하는 방식으로 구현
char(1Byte)
,long long(8Byte)
가 있는struct (9Byte)
가 존재32Bit(4Byte)
운영체제는 해당 구조체에서long long
을 읽기위해 3번의 접근이 필요함char의 1Byte
+long long의 3Byte
/long long의 4Byte
/long long의 1Byte
64Bit(8Byte)
운영체제는 2번char 1Byte
+long long 7Byte
/long long의 1Byte
반응형
댓글