C언어(2020년)

29. typedef

리더2333 2020. 11. 4. 14:02
반응형

자료형의 별칭을 지정할 수 있다.

// typedef (자료형) (별칭)

typedef char c8;
typedef unsigned char u8;

typedef short d16;
typedef unsigned short u16;

typedef int d32;
typedef unsigned int u32;

typedef float f32;
typedef double f64;

이제 우리는

int age = 19; 을 하는 대신

d32 age = 19; 를 할 수 있다.

 

// typedef (자료형)* (별칭)

typedef char* charptr;
typedef short* shortptr;
typedef int* intptr;

이와 같이 포인터를 재정의 할 수 도 있다.

이제 우리는

int* p1; 을 하는 대신

intptr p1; 을 할 수 있다.

 

 

 

구조체도 자료형이기 때문에 .....

// 구조체도 자료형이기 때문에
// typedef (자료형) (별칭)
// typedef (자료형)* (별칭)
// 형식으로 재정의 할 수 있다.
struct Human
{
    char name[128];
    int age;
    int height;
    int weight;
};

typedef Human Human_t;
typedef Human* HumanPtr;

// 아래와 같이 선언과 동시에 재정의 할 수 있으며, 
typedef struct Human
{
    char name[128];
    int age;
    int height;
    int weight;
} Human_t, *HumanPtr;


// 아래와 같이 원래의 구조체 이름을 생략 할 수도 있다.
typedef struct
{
    char name[128];
    int age;
    int height;
    int weight;
} Human_t, *HumanPtr;

이렇게 구조체를 재정의(typedef) 해 놓으면

struct Human human; 을 사용하는 대신에

Human_t human; 를 사용 할 수 있다.

 

만약

typedef struct Human

{

(생략)

} Human, *HumanPtr;

 

이렇게 정의 했다면

struct Human human; 을 사용하는 대신에

Human human; 을 사용할 수 있다.(struct를 안쓰고 자료형을 쓸 수 있음)

반응형

'C언어(2020년)' 카테고리의 다른 글

31. sizeof  (0) 2020.11.04
30. 문자열  (0) 2020.11.04
28. union  (0) 2020.11.04
27. 전처리기  (0) 2020.11.04
26. 가변인자 함수 만들기  (0) 2020.11.04