C++

[C++] 고정 너비 변수 (Fixed Width Integers)

kugnuoy 2024. 1. 16. 12:25

C언어에서는 성능이 가장 중요했기 때문에 컴파일러가 대상 컴퓨터 아키텍처에서 가장 잘 작동하는 int의 크기를 선택할 수 있도록 의도적으로 정수의 크기를 열어두었다.

 

크로스 플랫폼을 위해 C99에서는 모든 아키텍처에서 같은 크기를 갖도록 보장하는 고정 너비 정수를 정의했다.

 

 

C++ 에서는 이런 고정 너비 변수를 C++ 11의 일부로 채택했다. 

아래 코드와 같이 cstdint 헤더를 선언하여 사용할 수 있다.

#include <iostream>
#include <cstdint>
using namespace std;

int main(){
	int16_t a(5);
    cout << a;
}

 

[Warning]

int8_t 그리고 uint8_t 는 각각 signed char 그리고 unsigned char 로 동작할 수도 있다.

따라서 아래와 같이 uint8_t를 사용해 코드를 작성하면 문자 A가 출력될 수 있다.

int main() { 
	int8_t a = 65;
    cout << a;
}