형 변환(type conversion,[1][2] type casting,[1][3] type coercion,[3] type juggling[4][5])은 프로그래밍에서 자료형을 다른 형태로 변경하는 것이다. 필요에 따라서 변경되는 암시적 형변환프로그래머가 직접 변경하는 명시적 형변환으로 크게 두 가지로 나눌 수 있다.

암시적 형변환 편집

암시적 형변환은 컴파일러가 자동으로 변환하는 형변환이다. 예를 들면 복수 데이터 형태가 사용될 때 상위 데이터 형태로 자동 변환된다.

 double  d;
 long    l;
 int     i;
 // ...
 if (d > i)      d = i;
 if (i > l)      l = i;
 if (d == l)     d *= 2;

C 코드에서 변수 d, l, i는 다른 데이터형을 가지고 있지만 모든 연산은 자동적으로 같은 형태로 변환된 다음에 진행된다.

암시적 형변환에서는 주의할 점이 있다. 예를 들면 double형(부동소수점)의 데이터를 int형(정수형) 변수로 변환할 때 소수점 이하의 값이 존재하거나 int형으로 표현할 수 있는 범위를 벗어나는 경우 데이터의 일부를 잃어버리게 된다.

C++ 언어에서는 static_cast<>() 등등 다양하다.

같이 보기 편집

각주 편집

  1. Mehrotra, Dheeraj (2008). 《S. Chand's Computer Science》. 81–83쪽. ISBN 978-8121929844. 
  2. 《Programming Languages - Design and Constructs》. 2013. 35쪽. ISBN 978-9381159415. 
  3. Reilly, Edwin (2004). 《Concise Encyclopedia of Computer Science》. 82, 110쪽. ISBN 0470090952. 
  4. Fenton, Steve (2017). 《Pro TypeScript: Application-Scale JavaScript Development》. xxiii쪽. ISBN 978-1484232491. 
  5. “PHP: Type Juggling - Manual”. 《php.net》. 2019년 1월 27일에 확인함.