사용자가 32bit 운영체제 쓴다는 가정을 기반으로 작성된 코드인데,

코드를 보면 변수 초기 선언이 unsigned로 한 것들이 있어서, 이건 64bit에서도 돌아가겠다 이해가됨



그런데 상수값이 그냥 0x00000001 같이 32bit로 짜여진 것도 포함되어 있는데,
컴파일 멀쩡하게 되고 실행도 잘됨;; 혼자 짱구를 아무리 굴려봐도 두가지 이유밖에 안떠오름


1. 상수도 unsigned처럼 자동으로 빈 자리는 0으로 채워진다.

2. 64bit 운영체제 자체에 그냥 하위 호환성이 있다.


어느게 맞나요? 둘 다 틀렸으면 정답도 굽신굽신...