C 및 C의 산술 연산을 위해 짧은 변수를 Int로 변환해야 하는 이유
C에서 이 요구 사항을 물려받았음에도 불구하고 C에서는 역사적인 이유로 인해 산술 연산 전에 짧은 변수를 int로 변환합니다.
이에 대한 근거는 C 구현의 두 가지 주요 진영, 즉 서명되지 않은 보존과 가치 보존에서 비롯됩니다. Unsigned 보존은 short를 unsigned int로 승격시키고, 값 보존은 모든 short 값을 나타낼 수 있는 경우 signed int로 승격시키고, 그렇지 않으면 unsigned int로 승격시킵니다.
이 접근 방식은 실행 환경 전반에 걸쳐 다양한 short 표현을 수용하기 위해 채택되었습니다. 항상 int로 변환하면 계산이 더 넓은 유형으로 수행되어 종종 더 작고 빠른 코드가 생성되며 올바른 결과가 더 자주 생성됩니다.
예를 들어 다음을 고려하세요.
short s = 1, t = 2; auto x = s + t;
여기서 정수 승격은 더하기를 수행하기 전에 s와 t를 int로 변환하기 때문에 x는 int 유형을 갖습니다. 좁은 유형(예: 짧은 유형)의 계산을 허용하면 예상치 못한 결과가 나오거나 잘못된 답변이 나올 수 있습니다. 따라서 int로 변환하면 일관된 동작과 최적의 성능이 보장됩니다.
위 내용은 C와 C에서 산술 연산 전에 짧은 변수를 Int로 변환해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!