Nagie's DevStory
[C] 08. 변수와 상수 그리고 C언어의 데이터 타입 ( 3 ) 본문
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