Nagie's DevStory

[C] 08. 변수와 상수 그리고 C언어의 데이터 타입 ( 3 ) 본문

Programming/C

[C] 08. 변수와 상수 그리고 C언어의 데이터 타입 ( 3 )

Nagie 2023. 9. 3. 16:47
728x90

앞글에서 변수와 상수의 사용법을 설명과 함께 알아봤다.

 

변수와 상수를 사용하다 보면 정수뿐만 아니라 실수 또는 문자나 문자열까지 담아야 할 상황이 생긴다.

 

상황에 맞게 값을 저장하려면 내가 담으려는 값의 타입이 어떻게 되는지 알고 있어야지

 

손실 없이 불러오고 저장을 할 수 있을 것이다.

 

데이터 타입 ( Signed ) 용량 저장 범위
정수 short 2Byte (16bit) -32,768

~

32,767
int 4Byte (32bit) -2,147,483,648

~

2,147,483,647
long 4Byte (32bit) -2,147,483,648

~

2,147,483,647
long long 8Byte (64bit) -9,223,372,036,854,775,808

~

9,223,372,036,854,775,807
실수 (부동소수점) float 4Byte (32bit) -3.4 * 10^38

~

3.4 * 10^38

[소수점 이하 6자리까지]
double 8Byte (64bit) -1.8 * 10^308

~

1.8 * 10^308

[소수점 이하 15자리까지]
long double 8Byte (64bit) -1.8 * 10^308

~

1.8 * 10^308

[소수점 이하 15자리까지]
문자 char 1Byte (8bit) -128

~

127

 

 

데이터 타입 ( Unsigned ) 용량 저장 범위
정수 unsigned short 2Byte (16bit) 0

~

65,535
unsigned int 4Byte (32bit) 0

~

4,294,967,295
unsigned long 4Byte (32bit) 0

~

4,294,967,295
unsigned long long 8Byte (64bit) 0

~

18,446,744,073,709,551,615
문자 unsigned char 1Byte (8bit) 0

~

255

 

데이터 타입 용량 저장 범위
논리 bool 1Byte(8bit) 0 , 1

[거짓 , 참]

 

C에서 bool 타입의 자료형을 쓰려면 stdbool.h 파일을 소스에 포함해 줘야 한다.

 

생각 외로 C99 표준인데도 설명이 잘 안 되어있다.

 

#include <stdbool.h>

 

위의 전처리 코드를 소스 코드에 포함 하면 시스템 예약어처럼 아래와 같이 사용할 수 있다.

 

bool isTrue = true;

bool branchFnc () {

}

 

그리고 bool 타입의 표현은 1bit로도 가능하지만, 현대식 CPU 구조에선 메모리가 바이트 단위로 정렬된다.

 

즉 1 Byte 보다 작은 값을 처리할 수 없을뿐더러 bit 단위로 처리할 경우

 

Byte 단위로 불러오는 것 보다 효율이 떨어져 Byte 단위로 접근하는 방법을 사용한다.

728x90
Comments