나는 이것에 대해 궁금 해요 : 내가 int
변수에 정수 값을 할당 할 때 (16 비트 컴파일러는 정수의 2 바이트)의 말을하자유형 선택
int a;
a=40000;
은 유형 범위로 표시 할 수 없으므로 잘립니다. 하지만 내가 보는 결과는 의 결과 값이의 비트 패턴이 -25000 (또는 일부 가까운 수)의 비트 패턴이므로 컴파일러에서 십진수 40000으로 선택하는 이진 표현이 부호없는 정수 표현임을 의미합니다. 그리고 그게 내 질문을 제기 : 어떻게 컴파일러는이 리터럴 표현식의 유형을 선택합니까?
필자는 필요한 저장 공간을 줄여 값을 처리 할 수있는 유형을 사용하고 있다고 생각합니다.
좋은 컴파일러는 이러한 경우에 경고를 방출한다. – 0x6adb015