[C/C++ Tip] 5. 구조체 패딩


[C/C++ Tip] 5. 구조체 패딩

구조체 패딩은 컴퓨터 메모리에서 데이터를 효율적으로 접근하기 위해 사용되는 개념이다. 컴퓨터 아키텍처 대부분은 특정 데이터 타입을 메모리의 정렬된 주소에서 읽고 쓰는 것을 선호한다.

예를 들어, 많은 시스템에서는 4바이트 정수(int)를 4바이트 경계에서 시작하는 메모리 주소에서 접근하는 것이 더 빠르다. 이러한 정렬 요구 사항을 충족시키기 위해 컴파일러는 구조체 내의 필드 사이에 "패딩" 바이트를 추가하여 메모리 접근 속도를 최적화한다.

구조체 패딩의 필요성 메모리 접근 속도 최적화: 데이터를 그들의 자연 정렬 경계에 맞춰 저장함으로써, CPU는 메모리에서 데이터를 더 빠르게 읽고 쓸 수 있다. 플랫폼 호환성: 다양한 플랫폼과 아키텍처에서 코드의 동작을 일관되게 유지한다.

패딩이 발생하는 예시 다음 구조체를 고려해본다: typedef struct { char a; // 1바이트 int b; // 4바이트 } Example; char 타입의 a는 1바이트만 차지한다. 그러나 int ...


#C #CPP #구조체 #패딩

원문링크 : [C/C++ Tip] 5. 구조체 패딩