728x90
<stdint.h>는 C 프로그래밍 언어에서 정수형 데이터 타입의 크기와 범위를 명시적으로 정의하기 위해 제공되는 헤더 파일입니다. C 언어는 다양한 플랫폼에서 사용되므로, 데이터 타입의 크기와 범위가 플랫폼에 따라 달라질 수 있습니다. <stdint.h>를 사용하면 이러한 문제를 해결할 수 있습니다.
- 정수형 데이터 타입:
- <stdint.h>는 고정 크기의 정수형 데이터 타입을 제공합니다. 예를 들어, int8_t, uint16_t, int32_t와 같은 타입이 있습니다.
- 이 타입들은 각각의 비트 수에 따라 정해진 범위를 가지며, 부호가 있는 타입과 부호가 없는 타입으로 나뉩니다.
- 타입 정의:
- int8_t: 8비트 부호 있는 정수 (-128 to 127)
- uint8_t: 8비트 부호 없는 정수 (0 to 255)
- int16_t: 16비트 부호 있는 정수 (-32,768 to 32,767)
- uint16_t: 16비트 부호 없는 정수 (0 to 65,535)
- int32_t: 32비트 부호 있는 정수 (-2,147,483,648 to 2,147,483,647)
- uint32_t: 32비트 부호 없는 정수 (0 to 4,294,967,295)
- int64_t: 64비트 부호 있는 정수 (-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807)
- uint64_t: 64비트 부호 없는 정수 (0 to 18,446,744,073,709,551,615)
- 포인터와의 관계:
- intptr_t와 uintptr_t는 포인터의 크기와 일치하는 정수형 타입입니다. 이를 통해 포인터를 정수로 변환할 수 있습니다.
- 이점:
- 코드의 이식성을 높이고, 데이터 타입의 크기를 명확하게 제어할 수 있습니다.
- 다양한 플랫폼에서 일관된 결과를 보장합니다.
stdint.h 헤더 파일에 정의된 정수형 데이터 타입에 대한 표
데이터 타입 | 설명 | 크기(byte) | 범위 |
int8_t | 8비트 부호 있는 정수 | 1 | -128 ~ 127 |
uint8_t | 8비트 부호 없는 정수 | 1 | 0 ~ 255 |
int16_t | 16비트 부호 있는 정수 | 2 | -32,768 ~ 32,767 |
uint16_t | 16비트 부호 없는 정수 | 2 | 0 ~ 65,535 |
int32_t | 32비트 부호 있는 정수 | 4 | -2,147,483,648 ~ 2,147,483,647 |
uint32_t | 32비트 부호 없는 정수 | 4 | 0 ~ 4,294,967,295 |
int64_t | 64비트 부호 있는 정수 | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
uint64_t | 64비트 부호 없는 정수 | 8 | 0 ~ 18,446,744,073,709,551,615 |
사용 예시
#include <stdint.h>
#include <stdio.h>
int main() {
int32_t a = 100;
uint16_t b = 50;
printf("a: %d, b: %u\n", a, b);
return 0;
}
https://en.cppreference.com/w/c/types/integer
Fixed width integer types (since C99) - cppreference.com
int8_tint16_tint32_tint64_t signed integer type with width of exactly 8, 16, 32 and 64 bits respectivelywith no padding bits and using 2's complement for negative values(provided only if the implementation directly supports the type) int_fast8_tint_fast16_
en.cppreference.com
728x90
'C언어' 카테고리의 다른 글
[C언어] 사이드 이펙트 side effect (0) | 2024.09.25 |
---|---|
[C언어] 공용체 union (0) | 2024.09.24 |
[C언어] 구조체 struct (1) | 2024.09.24 |
[C언어] 정적 변수 static (0) | 2024.09.24 |
[C언어] 전역변수 extern (1) | 2024.09.24 |