본문 바로가기
자바 Java

typedef

by MEHAVING 2019. 10. 5.
반응형

typedef 선언

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

 

typedef int INT; // int의 또 다른 이름 INT를 부여

INT num; // int num;과 동일한 선언

 

복잡한 유형의 자료형 선언을 매우 간결히 처리할 수 있는 방법

typedef로 정의되는 자료형의 이름은 새로이 정의된 자료형의 이름을 구분할 수 있게 대문자로 시작하는 것이 관례 

#include <stdio.h>
#include <stdlib.h>

    typedef int INT;
    typedef int * PTR_INT;

    typedef unsigned int UINT;
    typedef unsigned int * PTR_UINT;

    typedef unsigned char UCHAR;
    typedef unsigned char * PTR_UCHAR;

int main()
{
    INT num1 = 12;
    PTR_INT pnum1 = &num1; // int * pnum1 = &num1;

    UINT num2 = 190;
    PTR_UINT pnum2 = &num2;

    UCHAR ch = 'z';
    PTR_UCHAR pch = &ch;

    printf("%d, %u, %c \n", *pnum1, *pnum2, *pch);


    return 0;
}

 

typedef struct point Point;

구조체 변수 선언을 할 때 struct를 매번 써주어야하는 귀찮음을 덜어줄 때 사용가능 !

struct point에 Point라는 이름을 부여한 것

 

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct point{ //struct point를(struct자료형 변수이름 point를 묶어서) Point로 쉽게 사용
        int x;
        int y;
    }Point;


double get_distance(Point p1, Point p2){ //double형의 두 점사이의 거리를 반환하는 함수
    int a = p2.x - p1.x;
    int b = p2.y - p1.y;
    double distance = sqrt((a*a) + (b*b));
    return distance;
}

double get_distance(Point p1, Point p2);

int main()
{
    Point p1 = {1, 2};
    Point p2 = {9, 8};
    printf("%.2f", get_distance(p1,p2)); //소수점 2번째 자리까지만

    return 0;
}
반응형

댓글