자료형변환
자동형변환
컴파일러가 자동으로 형 변환을 시켜주는 것
① 정수 + 실수 or 실수 + 정수와 같은 산술 연산을 하는 경우
정수에서 실수로 자동형변환이 이루어진 것입니다.
② 대입 연산을 하는 경우
대입 연산자를 기준으로 오른쪽에서 왼쪽으로 자동형변환이 이루어진 것입니다.
하지만 위에 두 값이 데이터 손실이 이루어졌습니다.
또 다른 예를들어
위에보신 것처럼 double(실수 2.5)에서 int(정수 2)로, int(정수 12)에서 double(실수 12.000000)으로
자동형변환이 이루어진 것입니다.
여기서 문제는 int(4Byte)에서 double(8Byte)로 형 변환이 되었을 때는 작은형에서 큰형으로 변환된 것이어서
문제가 되지 않지만 큰형에서 작은형인 double(8Byte)에서 int(4Byte)로 변환되었을 때에는 문제가 생깁니다.
바로 데이터 손실이라는 문제가 생기는 것인데요.
위에 예문처럼 double에서 int로 바뀌었을 때 2.5에서 2로 데이터 손실이 이루어지는 것입니다.
이런 데이터 손실을 최소화하기 위해서 나온 것이 바로 강제형변환이라는 것입니다.
강제형변환(명시적 형변환)
프로그래머가 강제적으로 이미 정의된 자료형을 다른 자료형으로 변환하는 것
typedef를 이용한 자료형의 재정의
→ definition(정의)
기본 자료형들에 새로운 이름을 붙이는 용도
: 자료형을 간결하게 표현 가능하고 프로그램의 가독성을 높일 수 있지만,
너무 남용하면 자료형 분석 시 혼란을 초래할 수 있습니다.
ex) typedef int mytype; // 지금부터 int를 mytype으로 봐라
'프로그래밍 언어 > C' 카테고리의 다른 글
[C언어] 반복문 (2) for문 (0) | 2017.06.19 |
---|---|
[C언어] 반복문 (1) while문 (0) | 2017.06.16 |
[C언어] sizeof, unsigned / signed (0) | 2017.06.13 |
[C언어] 상수 (리터럴상수 / 심볼릭상수) (0) | 2017.06.12 |
[C언어] scanf( )함수 (0) | 2017.06.07 |