C study

C/C++) Data Type 관련된 착각

mhe1239 2024. 11. 11. 23:58

데이터 타입에 따라 그 데이터 타입으로 선언된 변수는 특정 메모리 크기를 가진다.

예로 int는 4byte, double은 8byte와 같이 말이다.

 

bool의 경우 (c언어의 경우 #include<stdbool.h>가 필요하다.) 1byte를 가지지만 넣을 수 있는 값은 0(false), 1(true)뿐이다.

하지만 char 또한 1byte를 가지지만, 0~255의 값을 넣을 수 있다.

 

따라서 나중에 또 변수를 쓴다면 char으로도 쓸 수 있는 면으로 봤을 때 true, false의 값만 가질 수 있지만 1byte를 가지는 bool를 사용하는것 보다는 char를 쓰는 것이 더 좋은 방도가 될 수 있다.

 

 

또한 int는 4byte를 가지고 범위는 -2,147,483,648~2,147,483,647이다.

하지만 long은 4 byte를 가지고 범위가  -2,147,483,648~2,147,483,647이다.

즉, 또 다른 이름이 되는 것이다.

예전에 배신감을 크게 느낀 것이 하나 있는데, 바로 long double이다.

double은 8byte이고, 범위는 1.7E+/-308 (fifteen digits)이다.

long double 또한 같다. float보단 double, double보단 long double이라 생각하던 생각이 깨지던 순간이였다.

출처: Data Type Ranges: https://learn.microsoft.com/en-us/cpp/cpp/data-type-ranges?view=msvc-170

'C study' 카테고리의 다른 글

C/C++) 파일 입출력 기초  (0) 2024.12.09
C) scanf함수에 대해 자세히 파헤쳐 보자  (2) 2024.11.20