정렬과 패딩(Alignment and Padding)란?
데이터를 형마다 정해진 수의 배수 주소에 두는 것(정렬, alignment)과, 그 때문에 데이터 사이나 뒤에 넣는 사용하지 않는 바이트(패딩, 채움 바이트). int가 4바이트 경계에 맞춰지는 환경에서는 struct { char c; int i; char d; }의 c 뒤에 3바이트, d 뒤에 3바이트가 들어가며 크기는 12바이트가 된다. 경계에 맞지 않는 주소의 읽기/쓰기는 CPU에 따라 느려지거나 예외가 되기도 한다. 멤버를 큰 형부터 순서대로 나열하면 패딩을 줄일 수 있다.
일본어 명칭: アライメントとパディング
정렬과 패딩(Alignment and Padding)은(는) ISA와 어셈블리, C 언어 기초 등 2개 분야의 연습 문제 2개에 나와요.
분야: C 언어 기초