백준 풀면서 절대값 함수 찾는데
int형, long형, double형 함수가 따로 있었다
그리고 소수점까지 써야하는 문제라
double 자료형 범위 찾아보는데
int와 long의 크기와 숫자 범위가 같은 것 (!)
전에는 자료형 크기 해봤자
문제에서 나오는 최대 숫자 넘는지 정도 확인 했었는데
요즘엔 메모리나 시간복잡도도 조금씩 생각해보는 중이라
찾아보다가 갑자기 궁금해져서 찾아봤다.
int :
-2,147,483,648 ~ 2,147,483,647
4바이트
long :
-2,147,483,648 ~ 2,147,483,647
4바이트
구글링 하다 찾은 2012년도의 블로그에서는
(C언어 에서)
int형은 "CPU의 레지스터와 동일한 크기를 가지는 타입"으로 정의되어 있다.
즉, 32비트 운영체제에서는 32비트(4바이트), 64비트 운영체제에서는 64비트의 크기를 가진다.
반면에 long형은 크기가 4바이트로 고정되어 있어 어떤 플랫폼 에서나 4바이트 이다.
라고 했지만,
블로그가 오래되기도 해서
최근 정보들을 찾아다녔다. (위에 블로그 일부 구라였음)
- C언어는 1972년에 개발됨
- 1983년에 C의 표준 확립. 1989년에 완성 (C89)
즉, int는 16비트 까지는 아키텍쳐에 따라 크기가 달라지지만,
32비트 부터는 4바이트로 고정되는 것이다!
long을 안 가르쳐주고 안 쓰는 데는 다 이유가 있었다.
(몰라도 되므로)
도움이 되셨나요?