구조체 패딩
·
Programming/기타
구조체 패딩이란?CPU에서는 데이터를 메모리에서 읽고 쓸 때 정렬되어 있는 경우에 더 빠르게 접근할 수 있다. 예를 들어 32비트 컴퓨터의 경우 4바이트 단위로 저장되어 있어야 더 효율적으로 접근이 가능하다. 만약 4바이트 단위가 아니라 6바이트, 7바이트 등의 형태로 정렬되어 있는 경우 추가적인 연산이 발생하면서 성능이 저하될 수 있다. 예시를 한번 들어보자. struct Pad{ char a; long long b;}; 이 구조체의 멤버 b의 자료형은 long long이기 때문에 8바이트의 크기를 갖는다. 이 변수를 읽어들이는 경우 32비트 OS의 경우 3번의 접근이 필요하고, 64비트 OS의 경우에도 2번의 접근을 필요로 하게 된다. 하지만 패딩을 통해 보정을 해준다면?32비트의 경우 2..