본문 바로가기
Language/C언어

C002_자료형 확장과 자료형 축소

by OdOp 관리자 2023. 9. 4.
SMALL

자료형 확장

자료형을 섞어서 쓰면 컴파일러에서 암시적 형 변환(implicit type conversion)을 하게 되는데 자료형의 크기가 큰 쪽, 표현 범위가 넓은 쪽으로 자동 반환이 됩니다. 

이를 형 확장(type promotion)이라고 합니다. 

#include <stdio.h>

int main()
{
    int num1 = 11;
    float num2 = 4.4;

    //자료형 확장 
    printf("num1 + num2: %f\n", num1 + num2);  //15.4
    return 0;
}

num1은 정수형 num2는 실수형입니다. 이 둘을 합치면 위의 설명처럼 실수형으로 출력이 되게 됩니다. 

 

자료형 축소

크기가 작은 쪽으로 변환되는 것을 형 축소(type demotion)라 합니다. 

형 축소가 일어나면 컴파일할 때 값의 손실이 일어날 수 있다고 경고가 나옵니다. 

이를 사용하는 이유는 자료형을 숨기고 싶을 때 사용합니다. 

#include <stdio.h>

int main()
{
    float num2 = 4.4f;
    float num3 = 11.0f;
    int num4 = num3 / num2;

    //자료형 축소
    printf("num3 / num2: %d\n", num4);  //2: 정수형으로 저장되어야만 정확히 출력된다.
    return 0;
}
LIST

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

C004_switch문 설명  (0) 2023.09.06
C003_bool자료형  (0) 2023.09.05
C001_literal(리터럴)과 const(상수)에 대하여  (0) 2023.09.03
ASCII코드  (0) 2023.09.02
Debug와 Release  (0) 2023.09.01