본문 바로가기
Reference/C lang - header

[C] stdint.h

by 초보개발자_푸른서 2022. 5. 9.

stdint.h

C99 표준부터는 stdint.h 헤더 파일이 추가되었습니다.

  • stdint의 최소, 최댓값은 stdint.h 헤더 파일 안에 정의되어 있으므로 limits.h 헤더 파일을 사용하지 않아도 됩니다. 자료형과 마찬가지로 최소, 최댓값도 비트 단위로 크기가 표시되어 있으므로 간편하게 사용할 수 있습니다.
#include <stdio.h>
#include <stdint.h>    // 크기별로 정수 자료형이 정의된 헤더 파일

int main()
{
    int8_t num1 = -128;                    // 8비트(1바이트) 크기의 부호 있는 정수형 변수 선언
    int16_t num2 = 32767;                  // 16비트(2바이트) 크기의 부호 있는 정수형 변수 선언 
    int32_t num3 = 2147483647;             // 32비트(4바이트) 크기의 부호 있는 정수형 변수 선언
    int64_t num4 = 9223372036854775807;    // 64비트(8바이트) 크기의 부호 있는 정수형 변수 선언

    // int8_t, int16_t, int32_t는 %d로 출력하고 int64_t는 %lld로 출력
    printf("%d %d %d %lld\n", num1, num2, num3, num4); // -128 32767 2147483647 9223372036854775807

    uint8_t num5 = 255;                      // 8비트(1바이트) 크기의 부호 없는 정수형 변수 선언
    uint16_t num6 = 65535;                   // 16비트(2바이트) 크기의 부호 없는 정수형 변수 선언
    uint32_t num7 = 4294967295;              // 32비트(4바이트) 크기의 부호 없는 정수형 변수 선언
    uint64_t num8 = 18446744073709551615;    // 64비트(8바이트) 크기의 부호 없는 정수형 변수 선언

    // uint8_t, uint16_t, uint32_t는 %u로 출력하고 uint64_t는 %llu로 출력
    printf("%u %u %u %llu\n", num5, num6, num7, num8); // 255 65535 4294967295 18446744073709551615

    return 0;
}

 

[ 부호 있는 정수(signed) ]

  • 최솟값
    INT8_MIN , INT16_MIN , INT32_MIN , INT64_MIN
  • 최댓값
    INT8_MAX , INT16_MAX , INT32_MAX , INT64_MAX

 

[ 부호 없는 정수(unsigned) ]

  • 최솟값
    0
  • 최댓값
    UINT8_MAX , UINT16_MAX , UINT32_MAX , UINT64_MAX

 

 

 

 

[참고] https://en.cppreference.com/w/c/types/integer

반응형

'Reference > C lang - header' 카테고리의 다른 글

[C] float.h  (0) 2022.05.10
[C] limits.h  (0) 2022.05.09