C++에서 정수를 표현할 때 char를 쓰지 말 것

정수를 표현할 때엔 보통 int나 short를 사용하게 되는데, 네트워크 패킷 등에 사용할 때 크기를 줄이려고 char 형을 사용할 때가 있습니다. 그런데 정수로 표현돼야 할 자료를 char 형으로 표현하면, 스트림 관련 함수들이 그 자료를 문자로 인식해서 표현이 제대로 안 되는 문제가 생깁니다. 예를 들면 다음과 같습니다.

char number = 0;
cout << "Number is: " << number << endl;

위와 같은 코드에서 number는 실제로 0이라고 출력돼야 하지만 제대로 출력되지 않습니다. number를 공문자로 인식해 버리기 때문입니다. 형식을 강제로 지정하는 printf 스타일의 함수를 사용하면 위와 같은 문제를 피할 수는 있지만, 유지보수가 어려워져서 좋지 않습니다.

정수는 되도록 정수형으로 표현하는 게, 문제의 소지를 줄여 줍니다.

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중