C 언어
C의 타입 시스템은 변수의 메모리 크기, 값의 범위, 비트 해석 방식을 결정합니다. 표준 타입부터 플랫폼 의존적 크기까지 체계적으로 정리합니다.
| 분류 | 포함 타입 | 설명 | |||
|---|---|---|---|---|---|
| 기본 타입 | 정수형, 실수형 | 산술 연산 가능, 하드웨어 직접 매핑 | |||
| 열거형 | enum | 명명된 정수 상수 집합 | |||
| void 타입 | void | 값 없음, 미완성 타입 | |||
| 파생 타입 | 포인터, 배열, 구조체, 공용체, 함수 | 기본 타입으로부터 합성 |
| 타입 | 최소 크기 | 일반적 크기 (64비트) | 값 범위 (일반적) | 서식 지정자 | |
|---|---|---|---|---|---|
signed char | 8비트 | 1바이트 | -128 ~ 127 | %hhd | |
unsigned char | 8비트 | 1바이트 | 0 ~ 255 | %hhu | |
short / signed short | 16비트 | 2바이트 | -32,768 ~ 32,767 | %hd | |
unsigned short | 16비트 | 2바이트 | 0 ~ 65,535 | %hu | |
int / signed int | 16비트 | 4바이트 | -2,147,483,648 ~ 2,147,483,647 | %d | |
unsigned int | 16비트 | 4바이트 | 0 ~ 4,294,967,295 | %u | |
long / signed long | 32비트 | 8바이트 (LP64) / 4바이트 (LLP64) | -9.22e18 ~ 9.22e18 (64비트) | %ld | |
unsigned long | 32비트 | 8바이트 / 4바이트 | 0 ~ 1.84e19 (64비트) | %lu | |
long long (C99) | 64비트 | 8바이트 | -9.22e18 ~ 9.22e18 | %lld | |
unsigned long long | 64비트 | 8바이트 | 0 ~ 1.84e19 | %llu |
| 타입 | 크기 | 비트 구성 | 범위 (대략) | 유효 숫자 | 서식 |
|---|---|---|---|---|---|
float | 4바이트 | 1부호 + 8지수 + 23가수 | ±1.2e-38 ~ ±3.4e+38 | 약 6~7자리 | %f %e %g |
double | 8바이트 | 1부호 + 11지수 + 52가수 | ±2.3e-308 ~ ±1.7e+308 | 약 15~16자리 | %lf %e %g |
long double | 10/12/16바이트 | 확장 정밀도 (구현 의존) | ±3.4e-4932 ~ ±1.1e+4932 (80비트) | 약 19자리+ | %Lf |
3.14f // float 3.14 // double (기본) 3.14L // long double 1.23e-4 // 지수 표기 (double) 1.23e-4f // float 지수