본문 바로가기
전공공부/C, C++

[C] 10. C언어 구조체

by 아임그류튜 2024. 2. 25.
반응형

C언어 구조체에 관하여 알아보겠습니다.

구조체란 원하는 자료형 등 다양한 변수를 묶어서 새로운 자료형을 정의한다고 생각하시면 됩니다.

 

즉, 강아지의 이름, 나이, 몸무게를 각각의 변수가 아닌, 하나의 이름으로 저장이 필요할 때 사용합니다.

구조체의 키워드는 'struct'이며  아래와 같이 "struct 이름"을 사용하고 중괄호 안에 원하는 멤버변수를 선언해줍니다.

멤버변수란 그 구조체를 구성하는 변수입니다.

 

아래 예시를 직접 실행해보시기 바라며 구조체 멤버변수의 접근은 .(dot 연산자를 활용합니다.)

선언을 할때는 struct dog 등으로 구조체 키워드를 함께 사용해야 하거나,

typedef를 사용하여 키워드를 생략할 수 있습니다.

위 자료에서 Padding Bit란 사용한 변수는 20byte, 4byte, 4byte이지만 메모리 구조상 빈공간을 채우기 위하여,

컴파일러가 구조체의 멤버변수를 정렬하기 위해 추가적으로 삽입하는 비트입니다.

이러한 패딩 비트는 컴퓨터의 메모리 구조 및 효율성을 고려하여 자동으로 삽입됩니다.

 

즉, 큰 패딩비트의 목적은 메모리 정렬, 구조체의 크기조정을 위해 사용합니다.

메모리가 낭비되기도 하지 메모리 정렬을 통한 최적화를 위해 컴파일러가 자동적으로 사용합니다!

구조체도 결국 하나의 자료형으로 생각하면 되기에 포인터를 사용할 수 있습니다.

포인터를 사용하는 경우에는 멤버변수 접근연사자가 .(dot)이 아닌 '→'로 변경하여 사용합니다!

 

이상 C언어의 구조체에 관하여 알아봤습니다!

 

반응형