5.7.6 고정폭 정수 타입

    지금까지 소개한 정수 타입의 정밀도는 limits.h에 정의된 UINT_MAXLONG_MIN과 같은 매크로를 이용하여 간접적으로 검사할 수 있다. C 표준에서는 이런 타입에 대해 최소한의 정밀도만 제공한다. 부호 없는 타입에 대한 최소 정밀도(minimal precision)는 다음과 같다.

    ▼ 표 5-8 부호 없는 타입에 대한 최소 정밀도

    타입

    최소 정밀도

    bool

    1

    unsigned char

    8

    unsigned short

    16

    unsigned

    16

    unsigned long

    32

    unsigned long long

    64

    일반적인 상황에서는 이 정도로 충분하지만 구체적인 제약 사항이 있을 때는 이 정보만으로는 부족하거나 특정한 정밀도를 지정해야 할 수도 있다. 특히 부호 없는 값으로 최대 크기가 정해진 비트 집합을 표현할 때가 그렇다. 표현하려는 집합이 32비트만으로 충분하다면 플랫폼에 따라 unsignedunsigned long으로 표현하면 된다.

    C 표준에서는 stdint.h를 통해 고정폭 정수 타입(exact-width integer type)을 제공한다. 이름에서 예상할 수 있듯이 ‘폭’을 구체적으로 지정한 것으로서, 제공되는 부호 없는 타입에 대해 정밀도가 동일하다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.