정수 리터럴: 기본적으로 항상 Int는 아님
루프에서 반복하는 동안 지나치게 큰 정수 리터럴은 예상치 못한 문제를 일으킬 수 있습니다. 일반적으로 접미사가 없는 리터럴은 int로 해석됩니다. 그러나 이 가정은 매우 큰 값에는 적용되지 않을 수 있습니다.
오버플로 및 승격
정수 리터럴이 int 범위(일반적으로 32비트)를 초과하는 경우 정의되지 않음 행동(UB)이 발생할 수 있습니다. 그러나 경우에 따라 컴파일러는 자동으로 리터럴을 long int(일반적으로 64비트)와 같은 더 큰 유형으로 승격할 수 있습니다.
표준 사양
C와 C 표준 모두 정수 리터럴의 승격을 적절하게 규제합니다. type.
예
정수 리터럴 10000000000을 생각해 보세요. C 환경에서는 이는 긴 문자로 해석됩니다. 정수. 그러나 사용된 컴파일러가 32비트 컴파일러인 경우 리터럴이 사용 가능한 정수 유형에 비해 너무 커서 컴파일 오류가 발생할 수 있습니다.
위 내용은 C와 C에서 지나치게 큰 정수 리터럴이 때때로 `int`로 기본값이 아닌 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!