C++ 제안: 바이트는 정확히 8비트

1 week ago 7

근거

  • C 언어는 CHAR_BIT 매크로를 통해 바이트의 비트 수를 구현 정의로 제공하며, C++도 이를 그대로 가져옴
  • 현대 하드웨어는 대부분 바이트가 8비트라는 가정에 수렴하고 있음
  • 이 문서는 C++에서 바이트가 8비트임을 공식적으로 명시할 것을 제안함
  • 주요 컴파일러는 이미 8비트 바이트를 지원하고 있음
    • GCC는 기본값을 8로 설정
    • LLVM은 __CHAR_BIT__를 8로 설정
    • MSVC는 CHAR_BIT를 8로 정의
  • POSIX는 2001년부터 8비트 바이트를 요구하고 있음
  • 8비트 바이트를 지원하지 않는 소프트웨어는 호환되지 않음

C에 미치는 영향

  • 이 제안은 C++이 8비트가 아닌 바이트를 사용하는 아키텍처에 대해 관련성이 있는지 탐구함
  • C 언어 위원회는 다른 결론에 도달할 수 있으며, 두 위원회가 일치하는 것이 이상적임

언어

  • C++ 메모리 모델에서 기본 저장 단위는 바이트이며, 바이트는 8비트로 구성됨
  • CHAR_BIT 매크로는 climits 헤더에서 보고됨

라이브러리

  • climits 헤더는 C 표준 라이브러리 헤더 limits.h와 동일하게 모든 매크로를 정의함
  • cstdint 헤더는 지정된 너비를 갖는 정수 타입과 정수 타입의 한계를 지정하는 매크로를 제공함
  • 모든 타입과 매크로는 바이트가 8비트인 경우에만 선택적이지 않음

GN⁺의 정리

  • 이 문서는 C++에서 바이트가 8비트임을 공식적으로 명시하려는 제안임
  • 현대 하드웨어와 소프트웨어 플랫폼은 대부분 8비트 바이트를 사용하고 있어, 이를 표준화하는 것이 합리적임
  • 비 8비트 바이트 아키텍처는 현대 C++와 호환되지 않으며, 이러한 아키텍처의 중요성은 감소하고 있음
  • 이 제안은 C++의 복잡성을 줄이고, 새로운 프로그래머가 언어를 더 쉽게 이해할 수 있도록 도움
  • 비슷한 기능을 가진 다른 프로젝트로는 POSIX 표준이 있음

Read Entire Article