char이 8비트가 아닌 세상

엊그제 [WWW]gcc 워닝을 제거하는 커밋을 하나 했는데, 여기에 unsigned char이 256보다 클지도 모르니 체크해봐야된다는 MAL의 답글이 올라왔습니다. 그래서 의아하게 생각하던 와중, Fredrik Lundh가 ANSI C 스펙을 참고해 보라고 해서 찾아봤더니.. char의 크기는 “각 기계에서 주소 지정이 가능한 최소 단위”라고 정의되어 있어서, char은 H6070에서는 9비트이고 Cray에서는 64비트, TI의 DSP칩에서는 16비트라는군요.. (….)

10년간의 char에 대한 믿음이 허물어지는 순간 흑흑 ㅡ.ㅜ char는 int8_t가 아니구나.. 아니였던 것이구나. ㅡ.ㅜ

Univac 시절부터 메인프레임을 써 왔다는 Tim Peters의 [WWW]답변에 따르면 Univac은 이런 char크기 싸움에 휘말리지 않기 위해서 char을 6비트, 9비트 또는 36비트로 쓸 수 있게 했다는군요.. (웃음)

여하간, 귀도와 팀이 char를 8bit로 파이썬 전반에서 사용하는 것에 대해서 괜찮다고 답변을 줬기 때문에, 뭐 더 걱정할 일은 없겠습니다. ^^; 그리고 이번 기회로 역시 20년 이상 경력을 가진 개발자들의 깊은 지식에는 역시 감탄을…

(ANSI C의 세계는 멀고도 험난하구나~~;;)

12 thoughts on “char이 8비트가 아닌 세상”

  1. multibyte 문화권에서는 char이 8비트가 아닐 경우 발생할 수 있는 혼란 때문에, 터부시된 것이 아닐까 싶네요. ^^

  2. 크.. 아쉽게도 1 byte가 8 bit인 머신들이 득세하기 시작한 것은 70년대 중반인데, 멀티바이트 문자가 실제 구현되기 시작한 것은 70년대 후반(일본이 78년에 최초)이기 때문에, 1 byte == 8 bit라는 것은 멀티바이트의 영향과는 크게 상관없어 보입니다. 🙂

  3. 외국 프로그래밍 메일링 리스트를 보면 20대 프로그래머는 거의 핏덩어리나, 철없는 어린이가 되어버리는 느낌이 있습니다. 프로그래밍 경력이 30-40년을 넘는 사람들이 대부분이거든요.

    외국에선 2세대, 3세대 프로그래머(아버지도 프로그래머, 할아버지도 프로그래머)도 생기는 걸 보면 그렇기도 하겠다는 생각이 듭니다.

    일면 부럽기도 합니다.

  4. 예. 외국의 메일링 리스트에는 참말로 20대 프로그래머의 비중이 적어서, 개발자 대부분이 병역특례인 우리나라의 현실과 비교해 보면 정말 어른과 아이들을 비교하는 것 만큼이나 상황이 다른 것 같습니다. 🙂

  5. ;; 잘 봤어요~ 저도 여기서 ANN 과제로 스웨덴 의회의 투표 경향 분석을 해봤다는.. (근데 그닥 흥미로운 건 잘 모르겠음-_-)

Comments are closed.