관리 메뉴

ComputerVision Jack

[C프로그래밍 Chapter17] 본문

Programming Language/C Programming

[C프로그래밍 Chapter17]

JackYoon 2020. 2. 10. 09:34
반응형

[구조체 정의 typedef선언]

typedef선언

기존에 존재하는 자료형 이름에 새로운 이름을 부여하는 것.

typedef로 정의되는 자료형의 이름은 대문자로 시작하는 것이 관례이다.

 

typedef int INT; 

#기존 int자료형 사용에 대해 INT라고 표기가 가능해진다.

 

구조체와 typedef

struct sample{

    int x;

    int y;

};

기존 구조체 변수 선언

struct sample sp;

typedef 구조체 변수 선언

typedef struct sample Sample;

 

typedef struct sample{

    int x;

    int y;

} Sample;

#처음 구조체를 정의할 때, typedef로 묶어도 된다.

[구조체 변수 전달과 반환]

함수의 인자로 구조체 변수가 전달될 수 있다.

또한 구조체 포인터 변수를 사용하여 Call-by-reference 형태의 구성을 사용할 수 있다.

 

구조체 변수를 대상으로 가능한 연산

주소값 반환을 목적으로 하는 &연산

구조체 크기 반환하는 sizeof연산 

[중첩 구조체]

구조체 정의 이유

구조체를 통해서 연관 있는 데이터를 하나로 묶을 수 있는 자료형을 정의하면,

데이터의 표현 및 관리가 편해지고 합리적으로 코드를 작성할 수 있다.

 

배열이나 포인터 변수가 구조체 내부에 포함될 수 있듯 다른 구조체 정의 또한 구조체 내부에 포함 될 수 있다.

[공용체(Union Type)]

공용체(Union)

공용체는 union이라는 키워드를 사용하여 정의한다.

 

구조체 sample정의

typedef struct sp{

    int x;

    int y;

    double z;

} Sample;

 

공용체 sample정의

typedef union sp{

    int x;

    int y;

    double z;

} Sample;

 

sizeof로 각각 구조체와 공용체의 크기를 확인하면

구조체 : 16 출력

공용체 : 8 출력

 

공용체는 멤버들 간에 메모리 공간을 공유하고 있다.

따라서 하나의 메모리 공간을 둘 이상의 방식으로 접근이 가능하다.

[열거형(Enumerated Type)]

열거형(Enumerated)

열거형도 자료형을 정의하는 방법으로 사용된다

 

변수 value에 저장될 값들을 나열

enum value{

    num1 = 1, num2 = 2, num3 = 3

};

우리가 사용할 value변수에는 num1, num2, num3을 값을 사용하여 변수 value를 초기화할 수 있다.

또한 enum을 추가하여 열거형 변수를 선언해야 한다.

enum value v;

 

열거형 상수 결정 방식

열거형에 상수 값을 명시하지 않으면 0부터 시작해서 1씩 증가하는 형태로 정의된다.

 

열거형의 유용성

열거형의 유용함은 둘 이상의 연관이 있는 이름을 상수로 선언함으로써 프로그램의 가독성을 높인다.

반응형

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

[C프로그래밍 Chapter19]  (0) 2020.02.12
[C프로그래밍 Chapter18]  (0) 2020.02.11
[C프로그래밍 Chapter16]  (0) 2020.02.06
[C프로그래밍 Chapter15]  (0) 2020.02.05
[C프로그래밍 Chapter14]  (0) 2020.02.04
Comments