내친 김에 bool 관련 외의 글 몇개를 더 살펴보게 되었습니다.

이것 역시 제 블로그에 저를 위해 기록해 두는 것이 좋을 것이라 생각됩니다.

Shift Issue

핵심은 다음의 결과가 "0 0" 일까요? "1 0"일까요? 하는 문제입니다.

int _tmain(int argc, _TCHAR* argv[])
{
   int a = 1;
   printf("%d %d\n", a << 32, 1<<32);
   return 0;
}

이전에 정성태님 홈피에서 가져온 volatile 관련 글에서 느꼇던 것처럼 컴파일러 최적화가 때론 개발자 잡는 경우가 생기는 것 같습니다.

이번 문제는 컴파일러 최적화는 옳바르고 Intel 칩셋의 Shift 연산 관련 규칙이 오해를 불러 잃으켰지만 ...

여튼 재미있는 글입니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/04/25 20:50 2007/04/25 20:50
Tags:

Trackback Address :: http://www.codeforum.net/blog/pitoosung/trackback/66