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;
}
'Embedded System > 소프트웨어 (C,C++)' 카테고리의 다른 글
[GUI & 터치스크린] LVGL 구현 관련 정리 (0) | 2024.07.31 |
---|---|
[C/C++] LVGL GUI 라이브러리 (0) | 2024.07.10 |
[F/W] 펌웨어 구현 시 메모리 관리 (0) | 2024.06.25 |
[C++] 참조자 (Reference)/ 참조에 의한 호출(Call-by-reference) (0) | 2024.06.21 |
[C++] 함수 오버로딩 (Function Overloading) (0) | 2024.06.20 |