- 자료형 : 일정 길이의 메모리에 저장된 정보 해석 방법
- 배열 : 동일 형식의 연속된 집합체
- 구조체 : 서로 같거나 다른 형식들의 연속된 집합체 -> strcut
- 공용체 : 같은 데이터에 대해 여러 형식으로의 해석 방법을 부여하는 문법 -> union
구조체
- 인자로 넘길 때는 call by reference를 사용해서 메모리 복사를 방지
- 자기참조로 single linked list를 구현 가능
- 구조체 멤버 맞춤 : 요소를 char와 int로 했을 때, 실제로는 char에 4바이트 크기의 메모리가 할당됨 -> 이를 방지하기 위해 #pragma pack(push, 1)을 사용해 1바이트 단위로 정렬하게 함(I/O는 느려짐)
- 비트 필드 : 구조체 선언 시 요소에 ':'를 사용해 비트 단위로 설정 가능
공용체
typedef union U
{
char a;
int b;
} U;
void main()
{
U test;
test.a = 'A';
test.b = 300; // 'A'가 들어있는 메모리에 300이 오버라이드 됨
printf("%d\n", test.a); // 300 = 0x012c를 char 형식으로 출력 -> 44=2c
}
- 메모리가 낮은 주소부터 어떻게 해석할지를 결정
- 구조체로 구현했을 때보다 메모리가 적게 사용됨