[C언어] gcc의 모든 자료형 (The GNU C Reference )
Programming

[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 longunsigned long long은 C89 컴파일러에서는 사용할 수 없는 자료형이다.

자료형(Data Type)할당되는 메모리 크기표현 가능한 데이터의 범위
정수형



char1 Byte-128 ~ 127
signed char1 Byte-128 ~ 127
unsigned char1 Byte0 ~ +255
short2 Byte-32768 ~ 32,767
unsigned short2 Byte0 ~ 65,535
int4 Byte-2,147,483,648 ~ 2,147,483,647
unsigned int4 Byte0 ~ 4,294,967,295
long4 Byte-2,147,483,648 ~ 2,147,483,647
unsigned long4 Byte0 ~ 4,294,967,295
long long8 Byte-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
unsigned long long8 Byte0 ~ 18,446,744,073,709,551,615

charsigned char는 각각 다른 자료형으로, C99 에서는 이스케이프 문자(\n 등)를 포함한 ASCII 코드를 저장하는 데는 char를 쓸 것을 권고하고 있다.

실수형 자료형

실수형은 총 3가지 자료형이 있으며, 각각의 크기는 헤더 파일 float.h에 지정되어 있다. 예를 들면 float의 경우는 최저값과 최대값은 FLT_MINFLT_MAX로저장되어있다. 또한, 모든 실수형은 signed 자료형이며 unsigned 자료형은 존재하지 않는다.

자료형(Data Type)할당되는 메모리 크기표현 가능한 데이터의 범위
실수형float4 Byte3.4e-37 ~ 3.4e+38
double8 Byte1.7e-307 ~ 1.7e+308
long double8 Byte 이상컴파일러마다 다름

복소수형 자료형

복소수형 자료형은 C89에서 추가된 3가지 자료형과 C99에서 추가된 3가지 자료형을 합하여 총 6가지이지만, 여기서는 C99에서 추가된 자료형만을 소개한다. complex.h에서는 _Complexcomplex로 사용할 수 있는 매크로가 정의되어 있어 실제로는 float complex 와 같이 사용할 수 있다.

자료형(Data Type)할당되는 메모리 크기표현 가능한 데이터의 범위
복소수형float _Complex4 Byte3.4e-37 ~ 3.4e+38
double _Complex8 Byte1.7e-307 ~ 1.7e+308
long double _Complex8 Byte 이상컴파일러마다 다름

그러나 복소수형을 사용하기보다는 구조체로 복소수형을 만들어 사용하는 것이 연산하기에 더 편리한 것 같다.

Reference : The GNU C Reference Manual