이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[C] typedef / Union

  • 2022.05.26 15:56
  • Programming Language/C
반응형

 

 

typedef

 

 

typedef int INT;

위와 같이 작성하면 INT라는 이름의 타입을 새로 생성한다.

 

자바에서 클래스의 이름을 타입처럼 사용하듯, 여기서도 비슷한 맥락으로 생각하면 된다.

 

지난번에 배운 구조체를 정의할 때는 struct struct_name variable_name 이렇게 길게 선언해야 했는데, 

typedef로 미리 구조체를 어떻게 사용할 지 명시해 두면 좀 더 간결하게 사용할 수 있다.

 

 

 

위와 같이 활용한다. 원래 이름은 아예 생략해서 사용할 수도 있다.

 

 

 

 

Union

 

 

C말고 다른 언어에서는 거의 사용하지 않는 타입이다.

 

 

 

위의 그림을 살펴보자.

Union 타입으로 정의하면, 멤버변수들이 같은 위치에서 시작하게 된다.

즉, mem1에 10을 넣고 mem2에 20을 넣으면 mem1에 10을 넣었던게 사라진다. (덮어쓰인다)

mem3도 마찬가지.

 

어떨 떄는 double형 변수 하나, 어떨 때는 int형 변수 하나.. 이런 식으로 한 순간에 하나밖에 나타나지 않을 때 union타입을 사용한다. (사실 잘 안 쓰지만.. 옛날에 작성된 코드나 임베디드 분야에서 메모리를 효과적으로 사용할 때 사용되는 편이다.)

 

 

 

 

Union타입이 활용되는 예시이다.

4바이트 정수를 입력받고 입력받은 정수를 어떻게 해석할 지를 결정할 때 사용한다.

 

공용체(union)타입의 특성을 이용해 해결할 수 있다.

 

 

 

enum

 

 

열거형 타입.

정수인 상수들을 모아서 정의할 때 사용된다.

 

 

 

enum은 C뿐만 아니라 자바 등 여러 언어에서 지원하고 있다.

 

반응형

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

[C] 정리 (2)  (0) 2022.06.14
[C] 구조체  (0) 2022.05.26
[C] 동적 메모리  (0) 2022.05.23
[C] Stack / Heap  (0) 2022.05.23
[C] 배열 포인터 / 포인터 배열 정리  (0) 2022.05.11

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [C] 정리 (2)

    [C] 정리 (2)

    2022.06.14
  • [C] 구조체

    [C] 구조체

    2022.05.26
  • [C] 동적 메모리

    [C] 동적 메모리

    2022.05.23
  • [C] Stack / Heap

    [C] Stack / Heap

    2022.05.23
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (678)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (10)
    • 💬 기록 (7)
    • 📚 공부 (6)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바