• 자료형 : 일정 길이의 메모리에 저장된 정보 해석 방법
  • 배열 : 동일 형식의 연속된 집합체
  • 구조체 : 서로 같거나 다른 형식들의 연속된 집합체 -> 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
}
  • 메모리가 낮은 주소부터 어떻게 해석할지를 결정
  • 구조체로 구현했을 때보다 메모리가 적게 사용됨

'💻 Computer Science > C & C++' 카테고리의 다른 글

[C] 전처리기  (0) 2024.01.12
[C] 컴파일 최적화  (0) 2024.01.10
[C] 파일 입출력  (0) 2024.01.10
[C] 변수  (0) 2024.01.10
[C] 메모리 복사  (0) 2024.01.09