C

C언어를 가르칩니다.

C C언어를 가르칩니다.

C

| 공개

 

제가 처음 C언어를 배울 때 구글에다가 'C언어', 'C언어 강좌' 따위 검색어를 쳐서 한국어 문서를 봤는데, 거의 모두가 저질 정보였습니다. 입문자가 보기에도 제대로 알려주지 않고 야매로 배운다는 느낌이 강하게 풍기는 그런 글이 많았습니다(요즘은 꽤 괜찮은 문서가 있더군요. 그래도 적습니다.). 영어권은 C언어를 제대로 설명한 문서가 많습니다. C언어를 제대로 설명한 한국어 문서가 없다는 게 아쉬운 마음에 오픈튜토리얼스에 모듈을 개설하여 C언어 입문자들에게 도움을 주고자 합니다. 저도 C언어를 아주 잘 아는 것은 아닙니다. 그러나 적어도 잘못된 정보를 알거나 대충대충 알고 있지는 않습니다.

 

메모리를 다루는 내용이 많습니다. C가 메모리를 조작하는 데 특화된 언어이다보니 다룰 수밖에 없습니다. 너무 어렵게 설명하지 않도록 노력하겠습니다.

 

아래는 C의 장단점입니다. 제 의견도 좀 있습니다.

C언어의 장점:

-빠릅니다.

-메모리를 세밀하게 조작할 수 있습니다.

-C언어로 만든 프로그램은 가볍습니다.

-하드웨어를 조작할 수 있습니다. 원래 C의 목적이 그거였으니까요.

-이식성이 좋습니다. 한 시스템에서 작성한  C 프로그램은 대부분 다른 시스템으로 가져갔을 때도 멀쩡히 잘 돌아갑니다. 수정이 필요한 경우에도 헤더 파일만 조금 수정하면 됩니다.

-프로그래머에게 많은 걸 맡깁니다. 즉, 자유롭습니다. C언어의 철학 가운데 하나가 '프로그래머를 믿자'입니다. 

-한번 배우면 다른 프로그래밍 언어는 정말 쉽게 배울 수 있습니다. 많은 프로그래밍 언어가 C에 영향을 받았고, 그 가운데 상당수가 C로 만들어졌습니다. 파이썬도 C로 만들어졌지요.

 

 

C의 단점:

-재미가 없습니다. 다른 언어에 비해서요.

-다른 언어에 비해 좀 어렵습니다. '좀'어렵지 많이 어려운 건 아닙니다. 특히 포인터가 매우 어렵다는 글을 인터넷에서 많이 볼 수 있는데 과장된 겁니다. 그렇게까지 어렵지 않습니다.

-요즘은 잘 안 씁니다. 부족한 자원 속에서 작동하기 위해 메모리를 세밀하게 아껴야 하는 분야, 또는 하드웨어를 다루는 게 주가 되는 임베디드 시스템이 아니라면 쓸 일은 거의 없습니다. 그러니까, 자동차, 카메라, CD롬에 들어가는 마이크로프로세서 프로그래밍에서는 아직도 C가 많이 쓰입니다. 기술이 발전하면서 웬만한 메모리가 GB 단위로 나오다보니(여러분 컴퓨터도 메모리가 최소 2GB는 되겠지요?) 세밀하게 조작할 필요가 별로 없습니다(필요는 있지만 예전만큼 중요하지는 않습니다.).

 

그럼 시작해봅시다.

* 질문은 언제든지 환영입니다.

댓글

댓글 본문
작성자
비밀번호
graphittie 자세히 보기