C 및 C ++ 표준은 다른 특성을 가진 아키텍처가있는 경우 표준 준수 컴파일러를 작성하는 것이 매우 어렵거나 불가능하기 때문에 언어 구현 정의의 여러 측면을 남겨둔다는 것을 알고 있습니다.
나는 40 년 전에 모든 컴퓨터가 고유 한 사양을 가지고 있다는 것을 알고 있습니다. 그러나 현재 사용되는 아키텍처는 다음과 같습니다.
CHAR_BIT != 8
signed
2의 보수가 아닙니다 (Java에 문제가 있다고 들었습니다).- 부동 소수점은 IEEE 754와 호환되지 않습니다 (편집 : "IEEE 754 이진 인코딩이 아님"을 의미 함).
내가 묻는 이유는 사람들에게 C ++이 고정 크기 유형 † 과 같은 다른 저수준 측면을 요구하지 않는 것이 좋다고 종종 설명하기 때문 입니다. '다른 언어'와 달리 코드를 올바르게 사용할 때 코드를 이식 가능하게 만들기 때문에 좋습니다 (편집 : 부호 + 크기 아키텍처에 대한 2의 보수 산술과 같이 기계의 저수준 측면을 에뮬레이션하지 않고도 더 많은 아키텍처로 이식 될 수 있기 때문에) . 그러나 특정 아키텍처를 직접 가리킬 수 없다는 것은 기분이 좋지 않습니다.
질문은 무엇입니까? 위의 속성을 나타내는 아키텍처는 무엇입니까?
† uint*_t
s는 선택 사항입니다.