본문 바로가기
Embedded System/소프트웨어 (C,C++)

[C/C++] 고정된 너비 정수 (fixed-width integers) 자료형

by MachineJW 2024. 7. 9.

1. 고정된 너비 정수 (fixed-width integers)

다음과 같은 고정된 너비 정수 자료형은 stdint.h 헤더파일 typedef로 정의되어 있다.

고정된 너비 정수 원시자료형 바이트 (Byte)
int8_t char  1
uint8_t unsigned char 1
int16_t short 2
uint16_t unsigned short 2
int32_t int 4
uint32_t unsigned int 4
int64_t long long 8
uint64_t unsigned long long 8

이 같은 자료형을 사용하는 이유는 비트수를 고정하여 모든 시스템(프로그램)에서 동일한 bit수를 사용하도록 위함이다.

예를 들어 32 비트 정수는 항상 4byte(32비트)를 사용한다.

고정된 너비 정수는 정해진 비트 수만큼 메모리를 차지하므로, 메모리 관리가 용이하다.

또한 모든 연산은 동일한 비트 내에서 이루어지므로, 정수 연산의 결과가 항상 일정한 크기로 유지 된다.

특히 메모리 관리가 중요한 임베디드에서 많이 사용되는 자료형이다.

#include <stdint.h>
#include <stdio.h>

int main() {
    int32_t a = 2147483647; // 32비트 부호 있는 정수
    uint16_t b = 65535;     // 16비트 부호 없는 정수
    
    printf("a: %d\n", a);
    printf("b: %u\n", b);
    
    return 0;
}