[C언어] gcc의 모든 자료형 (The GNU C Reference )
The GNU C에서 규정하고 있는 주 자료형(Primitive Data Types)은 다음과 같다.
- 정수형(Integer Types)
- 실수형(Real Number Types)
- 복소수형(Complex Number Types)
다만 여기서 정의하고 있는 데이터 범위는 최소한으로, 사용자의 컴퓨터 아키텍처에 따라 이보다 더 커질 수 있다(depending on your computer platform, these sizes and ranges may be larger).
정수형 자료형
C99 표준에서 정한 바에 의하면 정수형 자료형은 8bit에서 64bit까지 크기를 갖는 것이 허용된다. 따라서 long long
과 unsigned long long
은 C89 컴파일러에서는 사용할 수 없는 자료형이다.
자료형(Data Type) | 할당되는 메모리 크기 | 표현 가능한 데이터의 범위 | |
정수형 | char | 1 Byte | -128 ~ 127 |
signed char | 1 Byte | -128 ~ 127 | |
unsigned char | 1 Byte | 0 ~ +255 | |
short | 2 Byte | -32768 ~ 32,767 | |
unsigned short | 2 Byte | 0 ~ 65,535 | |
int | 4 Byte | -2,147,483,648 ~ 2,147,483,647 | |
unsigned int | 4 Byte | 0 ~ 4,294,967,295 | |
long | 4 Byte | -2,147,483,648 ~ 2,147,483,647 | |
unsigned long | 4 Byte | 0 ~ 4,294,967,295 | |
long long | 8 Byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | |
unsigned long long | 8 Byte | 0 ~ 18,446,744,073,709,551,615 |
char
와 signed char
는 각각 다른 자료형으로, C99 에서는 이스케이프 문자(\n
등)를 포함한 ASCII 코드를 저장하는 데는 char
를 쓸 것을 권고하고 있다.
실수형 자료형
실수형은 총 3가지 자료형이 있으며, 각각의 크기는 헤더 파일 float.h
에 지정되어 있다. 예를 들면 float
의 경우는 최저값과 최대값은 FLT_MIN
와 FLT_MAX
로저장되어있다. 또한, 모든 실수형은 signed
자료형이며 unsigned
자료형은 존재하지 않는다.
자료형(Data Type) | 할당되는 메모리 크기 | 표현 가능한 데이터의 범위 | |
실수형 | float | 4 Byte | 3.4e-37 ~ 3.4e+38 |
double | 8 Byte | 1.7e-307 ~ 1.7e+308 | |
long double | 8 Byte 이상 | 컴파일러마다 다름 |
복소수형 자료형
복소수형 자료형은 C89에서 추가된 3가지 자료형과 C99에서 추가된 3가지 자료형을 합하여 총 6가지이지만, 여기서는 C99에서 추가된 자료형만을 소개한다. complex.h
에서는 _Complex
를 complex
로 사용할 수 있는 매크로가 정의되어 있어 실제로는 float complex
와 같이 사용할 수 있다.
자료형(Data Type) | 할당되는 메모리 크기 | 표현 가능한 데이터의 범위 | |
복소수형 | float _Complex | 4 Byte | 3.4e-37 ~ 3.4e+38 |
double _Complex | 8 Byte | 1.7e-307 ~ 1.7e+308 | |
long double _Complex | 8 Byte 이상 | 컴파일러마다 다름 |
그러나 복소수형을 사용하기보다는 구조체로 복소수형을 만들어 사용하는 것이 연산하기에 더 편리한 것 같다.
Reference : The GNU C Reference Manual