unsigend 변수를 선언했는데 음수가 출력되는 경우


unsigend int a = 0xffffffff; //정수로 표현할수 있는 최대값 32비트 전부 1로 채워진값 42억을 나타낸다.

이렇게 선언하고 나서 화면에 출력하였을 경우 -1이 뜨는걸 본적이있을 것이다.

이는 작성자가 화면출력시 포멧형식을 제대로 준수하지 않아서 뜬 결과이다.

위 같이 unsinged 타입으로 선언하였을 경우 포멧에 u를 붙인다.

int 일경우

printf("%u",변수값);

short 일 경우

printf("%hu",변수값);

유의하자!! 출력포멧을 잘못하여서 디버깅 하는데 엄청나게 시간을 낭비하는 경우가 많다.  

 


덧글

댓글 입력 영역