Language/C C++

[C언어] 사용자 정의 자료형

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

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

 

 

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

 

 

'Language > C C++' 카테고리의 다른 글

[cpp] namespace란?  (0) 2021.06.23
[cpp] 시작하기  (0) 2021.06.23
[C언어] 배열과 포인터  (0) 2021.02.05
[C] Pointer 개념정리  (0) 2021.02.03
[C 자료구조] 배열이란  (0) 2021.01.20