Language, SDK/C C++
[C언어] 사용자 정의 자료형
nineil912
2021. 2. 5. 21:29
구조체



구조체 선언과 멤버 사용

구조체는 struct 예약어로 선언한다.
구조체_변수명.멤버명
구조체 변수의 크기
컴파일러는 구조치 멤버의 크기가 들쑥날쑥한 경우 멤버 사이에 패딩 바이트를 넣어 멤버들을 가지런하게 정렬한다. 이를 바이트 얼라인먼트라고 한다.

struct student { int num; double grade; }
+) 패딩바이트를 줄여보자
struct student { char ch1; short num; char ch2; int score; double grade; char ch3; }

위와 같은 경우 패딩 바이트가 너무 많이 차지되었다.
struct student { char ch1; char ch2; short num int score; double grade; char ch3; }
와 같이 순서를 바꾸면 어떻게 될까?

패딩바이트는 위와 같이 훨씬 줄어든다.