는 가정 다음부호없는 char은 항상 int로 승격됩니까?
unsigned char foo = 3;
unsigned char bar = 5;
unsigned int shmoo = foo + bar;
보장 foo
및 bar
값은 표현 foo + bar
의 평가를 위해 int
값으로 승진 할 수 있는가 - 또는 구현 unsigned int
에게 홍보 할 수 있습니다?
섹션 6.2.5제 8 절 : 동일한 부호의 다른 정수 변환 계수 (6.3.1.1 참조) 유형 값의 범위로 임의의 두 정수 유형의
더 작은 정수 변환 순위는 다른 유형의 값의 하위 범위 인 입니다.
9 단락 6.2.5 절에서:
은
int
원래 타입의 모든 값을 나타낼 수있는 경우, 그 값은int
로 변환된다; 그렇지 않으면unsigned int
으로 변환됩니다.
작은 정수 변환 순위 정수 타입은 다른 타입의 값의 하위 범위 인 값의 범위를 갖는 것을 보장 정수형의 부호의에 의존하는 것으로 보인다.
signed char
이signed int
unsigned char
에 해당이는unsigned char
의 값 만unsigned int
의 부분 범위에서 보장하고 반드시int
것을 뜻unsigned int
에 해당? 그렇다면 구현시 이론적으로 unsigned char
값이 int
의 하위 범위에 있지 않음을 의미합니까?
[Deep C : Integer Promotion] (http://www.idryman.org/blog/2012/11/21/integer-promotion/) –
대답하지 않습니까? –
int가 8 비트 인 시스템을 찾지 못하면 6.2.5 절에서 9 절이 작동해야합니다. – hetepeperfan