더북(TheBook)

B.3 checked와 unchecked

프로그램을 작성하다 보면 원하는 대로 결괏값이 나타나지 않을 때가 많이 발생합니다. 예를 들어 다음 코드를 작성하면 256이 아닌 0이 나타납니다.

> byte b = 255;
> b++;
> b
0

byte 형식은 0부터 255까지 작은 정수를 담을 수 있는 그릇인데, 255인 상태에서 1을 증가시키면 256이 되는 것이 아니라 오버플로가 발생하여 다시 0이 됩니다. C# 컴파일러는 이러한 오버플로 에러는 기본값으로 발생시키지 않습니다.

산술 연산 구문을 checked {} 구문으로 묶어 주면 다음과 같이 오버플로 오류가 생기지 않게 알려주는 오류를 발생시킬 수 있습니다.

> byte b = 255;
> checked
. {
.     b++;
. }
산술 연산으로 인해 오버플로가 발생했습니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.