Skip to Main Content

프로그래밍 언어 가이드: C언어

코딩 학습 가이드는 소프트웨어학과 송오영교수님이 검수하였습니다.

C언어

The computing world has undergone a revolution since the publication of The C Programming Language in 1978.
1978년 "The C Programming Language" 출판 이후 컴퓨팅 세계는 혁명을 겪어왔다.

- The C Programming Language 2nd Edition


            헬로우 월드 예제

 
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(void)
{
    printf("Hello, world!");
    return 0;
  C언어 기초 가이드 바로가기

C언어 추천도서

C언어의 역사

- ALGOL 60 (ALGOrithmic Language 1960) : 1950년대 미국에서 만들어진 포트란에 대항하여 유럽의 학자들을 중심으로 개발된 프로그래밍 언어입니다. 알고리즘의 연구개발, 수치 계산과 논리 연산에 이용하기 위한 목적으로 만들어졌습니다. 1960년 국제정보처리학회연합(IFIP)에서 만들어져 유럽 지역에서 많이 사용되었습니다.
- BCPL (Basic Combined Programing Language) : CPL은 ALGOL 60보다 더 다양한 용도로 확장하기 위해 영국 캠브리지 대학교의 수학 연구소와 런던 대학교의 컴퓨터공학부에서 공동개발한 언어입니다. 이 CPL을 좀 더 단순화시킨 BCPL이 개발되었습니다.
- BCPL (Basic CPL) : 1967년에 CPL을 좀 더 단순화시킨 BCPL가 개발되었습니다.
- B : 1969년에 BCPL이 미국에서 건너와 1970년에 Ken Tompson이 'B'라는 언어를 만들었습니다.
- C : 1972년에 미국 AT&T Bell 연구소의 Dennis Ritche가 B언어의 특징을 물려받은 'C'라는 언어를 만들었습니다. C언어라는 이름의 유래 또한 B언어 바로 다음에 개발되어서 명명된 이름입니다.
- K&R C : 1978년에 브라이언 커니핸과 데니스 리치는 The C Programming Language의 초판을 집필해서 출간했습니다. C 프로그래머에게 'K&R'로 유명한 책으로 한동안 이 책을 기준 사양으로 사용되었습니다.
- ANSI C : 1989년에 ANSI가 ANSI X3.159-1989라는 공식 명칭으로 C언어 표준을 제정했습니다. K&R C의 확장안 성격을 가지고 있으며, 이 때 제정된 C언어 표준이라고 해서 C89라고도 합니다.
- ANSI/ISO C : 1990년에 ANSI가 C언어 표준을 국제 표준화기구(ISO)에 넘기면서 내용 변화 없이 ISO/IEC 9899:1990라는 또 다른 공식 명칭으로 채택되었습니다.
- C99 : 1999년에 ISO/IEC 9899:1999라는 공식 명칭으로 표준안이 발표되었습니다.
- C11 : ISO/IEC 9899:2011의 줄임말로 C 언어의 최신 개정된 표준입니다. 이전까지 표준이던 C99의 후속으로 최종안인이 2011년에 승인되었습니다.


C언어 최신 표준에 대한 더 자세한 사항은 다음 pdf 문서를 참고하면 됩니다.
 C11 : Committee Draft N1570 ISO/IEC 9899:201x

C언어의 장단점

C언어는 저급언어와 고급언어의 특징을 모두 가지고 있는 프로그래밍 언어입니다.
저급언어는 기계가 이해하기 쉬운가, 고급언어는 사람이 이해하기 쉬운가를 상대적으로 나눈 개념입니다.
저급언어라고 해서 질이 낮은 언어라는 의미가 아닙니다. 저급언어는 low-level, 고급언어는 high-level의 번역 결과입니다.

C언어 장점 C언어 단점
1. C언어로 작성된 프로그램은 다양한 하드웨어로의 이식성이 좋습니다.
2. C언어는 절차 지향 프로그래밍 언어로, 쉽게 익숙해질 수 있습니다.
3. C언어는 코드가 간결하여, 완성된 프로그램의 크기가 작고 실행 속도가 빠릅니다.
1. C언어는 저급 언어의 특징을 가지고 있으므로, 자바와 같은 다른 고급 언어보다 배우기가 쉽지 않습니다.
2. C언어는 다른 언어와는 달리 시스템을 직접 제어할 수 있으므로 프로그래밍하는데 세심한 주의를 기울여야 합니다.

C언어의 활용 분야

C언어는 운영체제(OS) 개발을 위해 만들어진 언어입니다. 따라서 하드웨어를 제어하고 실행 효율을 높여야 하는 곳에 주로 쓰입니다.
대표적으로 특정 하드웨어에 최적화된 기능이 필요한 임베디드 프로그래밍에 가장 많이 쓰입니다.
가전제품을 비롯한 의료 장비, 무기, 엔진 등 관련 부품에 들어가는 프로그램 개발에 사용됩니다.
사물인터넷과 같이 사물에 인터넷을 연결하여 제어하는 곳에도 C언어를 사용합니다.

 

C언어는 다음과 같은 분야에서 주로 쓰입니다.

- 운영 체제 및 디바이스 드라이버
- 마이크로컨트롤러
- 임베디드 시스템
- 암호학 라이브러리
- 프로그래밍 언어 인터프리터(CPython 등)
- 웹 서버(Apache 등)
- 데이터베이스(PostgreSQL 등)
- 이외에 매우 빠른 계산속도가 필요한 프로그램이나 라이브러리