정수 형식을 상위 형식으로 변환하는 구체적인 경우에 대해 C++ 표준 (정수 판촉) 4.5 절에서 설명합니다.C++의 정수 판촉과 정수 변환의 차이점
정수 유형의를 rvalue 다른 정수 유형의를 rvalue로 변환 할 수 있습니다 :
섹션 C++ 표준 (정수 변환)의 4.7 (총알 4.7.1)로 시작합니다. 열거 유형의 rvalue는 정수 유형의 rvalue로 변환 될 수 있습니다.
지금까지 내가 (아마도 총알 4.5.3 (열거 형) 제외) 4.5에 설명 된 변환을 이해 4.7 섹션 만의 기술을 사용하여 수행 할 수 있습니다 : 4.5.1과 4.5.2이 완전히 덮여를 4.7.1 씩; 4.5.4는 4.7.4에서 다룬다. 그렇다면 전체 4.5 섹션의 목적은 무엇입니까? 어떤 추가 전환이 가능합니까? 어쩌면 몇 가지 제한 사항이 누락 되었습니까?
P. C++ 03 표준 버전을 읽고 있습니다.
흠. 그래서 만약 내가'unsigned char a; 부호있는 문자 b; ... short c = a + b', 처음에'a'와'b'는 * 승격 * 된 (부호없는) int로 추가되고 그 결과는 * short *로 변환됩니까? –
@ 부 라티 나스, 예. – AProgrammer
@buratinas : a가 unsingned int로 승격되고 b가 signed int로 승격 된 후 b 승격의 결과가 unsigned int로 변환되면 이들이 더해지고 결과는 signed short로 변환됩니다. –