AD

 개발 int의 추억

상보성금속산화막반도체
2020-11-17 01:46:18 811 18 7

옛날, C언어 배우던 시절에, int의 표현 범위가 -32,768~32,767인지 -2,147,483,648~2,147,483,647인지 헷갈렸던 적이 있었음.

그 당시 내가 쓰던 컴파일러에서는 후자였는데, 간혹 int가 전자의 범위를 가지는 환경도 있더라.


사실은 양쪽 모두 그다지 정확한 설명은 아니었다는 걸 알게 된 건 시간이 꽤 지나고 나서였음.

정확하게 설명하면, int의 표현 범위는 구현에 따라 다를 수 있되, "(최대 -32,767)부터 (최소 32,767)까지".


C언어에서 기본 정수 자료형들은 그 표현 범위에 대해서 최소한의 요건만 있을 뿐인데, 살펴보면 이게 뭐 거의 다 무슨 16비트 컴퓨팅 시절 범위라서 요즘 환경과는 괴리가 느껴지는 경우가 많음.

컴퓨터는 나날이 규모가 커지는데 언어 표준이 요구하는 조건은 쉽게 바뀌지 않으니.


근데 그렇다고는 해도 int형 변수에 40,000 정도의 숫자조차 확실히 담을 수 있다는 보장이 없다는 건 은근히 신경 쓰이는 일이라, 요즘 C로 코딩할 일 있으면 int32_t 같은 Fixed width integer types를 쓰게 된다.


p.s. java의 int는 확실히 -2,147,483,648부터 2,147,483,647까지임. 레퍼런스 참조.

p.p.s. 난데없이 이 추억을 떠올린 이유는 최근 Rust를 배우고 있기 때문. Rust의 정수 자료형은 깔끔하게 i8, i16, i32, ... 이고, C언어의 int에 대응되는 "아키텍처 의존적인 최적의 정수형"은 isize라고 부름.

뭔가 좀 더 최신 프로그래밍 언어 답게 명시적인 게 마음에 든다. 뭐 C언어의 "int"가 주는 애매모호한 느낌이 불만족스러웠던 사람이 나 혼자만은 아니었겠지...

후원댓글 7
댓글 7개  
이전 댓글 더 보기
이 글에 댓글을 달 권한이 없습니다. 로그인해 보세요.
▲윗글 오늘의 삽질. 와이파이 조사 greatadversary
▼아랫글 C/C++ 화면 클리어 질문 42x360WINDMILL
 잡담 공지 개발 아트 영상 털
5
08-15
23
 개발
펀즈님 혹시 ! [6]
자동
06-05
8
 개발
올해 본 코드중 최악의 코드 [3]
라스트오더
06-03
9
 개발
와! 크리스마스 트리 밑에 선물이 쌓여 있네! [1]
상보성금속산화막반도체
12-25
6
 개발
데이터 질문 [2]
12-23
4
 개발
HTML린이 질문 [5]
ㅇㅇ
12-20
16
 개발
드디어 샀다 [5]
상보성금속산화막반도체
12-20
4
 개발
JS, jQuery, HTML 질문 [5]
스카이프_박태성
12-06
12
 개발
!마이크 Cap 추가 [7]
찬라떼
12-03
21
12-02
12
 개발
아잇 씻팔 하란대로 했잖아 나한테 왜그래? [4]
비알콜성푸아그라
12-02
4
 개발
iframe은 추임 비추임? [5]
PFRain
11-29
36
11-27
7
 개발
HTML/CSS/JS 야한냄새 질문 [7]
스카이프_박태성
11-27
25
11-22
10
 개발
명령어 이름 추천 좀 (완료) [15]
찬라떼
11-22
7
 개발
님들 [16]
찬라떼
11-19
3
 개발
파이썬 빠른 질문 [7]
ㅇㅇ
11-18
18
 개발
오늘의 삽질. 와이파이 조사 [1]
greatadversary
11-17
»
 개발
int의 추억 [7]
상보성금속산화막반도체
11-17
3
 개발
C/C++ 화면 클리어 질문 [1]
42x360WINDMILL
11-10
34
11-09
인기글 글 쓰기