type safety1 [c언어]printf 서식 지정자 %f로 int값을 출력하면 어떻게 될까? int a = 10;printf("%f", a); 이 코드의 결과는 어떨까?아니 애초에 컴파일이 가능하긴 할까? 컴파일이 되긴 되는데 예측할 수 없다. int 안에는 2의 보수법 형태의 이진수가 들어간다. float 안에는 IEEE 754 표준에 따라 지수부와 가수부로 나뉜 이진수가 들어간다.즉, 두 자료형의 데이터 저장 구조가 다르다는 것이다.그렇다면 printf 내부적으로float를 character로 변환시키는 코드가 있을 것이고int를 character로 변환시키는 코드가 있을 것이다. 애초에 변환 방법 자체가 다르기 때문에 예측할 수 없는 결과가 나온다.추가로 이렇게 타입 간의 변환을 엄격하게 걸러내지 않는 c언어는대표적으로 타입 안정성(type safety)이 약한 언어 중 하나다. 2025. 7. 8. 이전 1 다음