태그 글목록: 명시적형변환 묵시적형변환 차이점

[C++ 정리] 명시적 형변환 & 묵시적 형변환 2015-06-11

형변환시 고려사항
큰 자료형에서 작은 자료형으로 형변환을 할 경우 일부가 잘려나갈 수 있다.

#include "stdafx.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	float number1 = 55.55;
	int number2 = (int)number1;
	bool number3 = (bool)number1;
	cout << number2 << "\n";
	return 0;
}
포스트 링크 <[C++ 정리] 자료형의 크기 및 범위>에 따라 55.55는 각각 55(int), 1(bool)이 출력된다.

 

명시적 형변환

float number1 = 55.55;
int number2 = (int)number1;
bool number3 = (bool)number1;
변환할 자료형을 명시((int))해준다.

 

묵시적 형변환

float number1 = 55.55;
int number2 = number1;
bool number3 = number1;
그냥 대입한다.

 

명시적 형변환과 묵시적 형변환의 차이점

* 결과적인 차이는 없다
* 명시적 형변환의 경우 내부적으로 임시변수를 생성에 대입하는 방식으로 성능 저하를 일으킬 수 있다.
* 묵시적 형변환의 경우 데이터 손실에 대한 경고가 발생한다.