2012-02-20 2 views
0

unsigned short int에 대해 연산을 수행하면 두 데이터 유형이 같은 크기를 가진 시스템에서도 unsigned int로 승격됩니다. 그러한 홍보의 목적은 무엇입니까? 어떻게 도움이됩니까? 이름 변경 (크기가 같기 때문에)이 아닌가?사이즈가 같아도 unsigned int가 unsigned int로 승격되는 이유는 무엇입니까?

+0

유형은 특정 플랫폼의 메모리에서 동일한 비트 수를 사용하더라도 C 유형 시스템의 관점과 여전히 다릅니다. – reuben

+0

@Reuben이 방법으로 어떤 도움이되는지 예제를 제공해 주시겠습니까? 그러한 전환에 대해 걱정할 필요가 있습니까? 잠재적 버그일까요? – bubble

+0

'sizeof (unsigned short int)! = sizeof (unsigned int)'가있는 현존하는 플랫폼/기계/OS가 있습니다. – reuben

답변

1

ANSI C위원회의 원래 위임장은 새로운 언어를 만드는 것이 아니라 기존 연습을 체계화하는 것이 었습니다.

ANSI와 ISO를 통한 모든 반복에서 C 표준은 하위 호환성을 매우 중요하게 생각합니다. 항상

:-) 추진이 이루어집니다 이유를 그런 식으로 일을하고 있기 때문에

, 그것은 그런 식으로 끝낼 수있는 표준 크기가 서로 다른 곳을 포함 모든 구현을 위해이기 때문에 .

하지만 당신이 무엇에 대해 불평하는지 잘 모르겠습니다. 유형이 동일한 유형의 프로모션은 성능에 영향을 미칠 가능성이 거의 없습니다.

2

데니스 리치 (Dennis Ritchie)는 1970 년대 초에 처음으로 C에 대한 규칙을 설정해야한다고 결정했기 때문에 (또는 적어도 unsigned 정수 유형을 지원하여 C에 대한 규칙을 처음 설정했을 때, 그러나 shortint으로 승격 되었기 때문에 이미 그랬다.

관련 문제