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;
}

와 같이 순서를 바꾸면 어떻게 될까?

 

 

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