1. C의 특징과 한계

 

 

C의 특징

(1) 뛰어난 이식성 ( Portability )

C언어는 운영체제와 같은 시스템 프로그래밍을 작성하기에 적합한 언어이므로 프로그램의 이식성이 높고 하드웨어에 대한 제어가 가능.

한 컴퓨터에서 C언어로 작성된 프로그램은 소스 코드를 조금 변경하거나 전혀 변경하지 않고, 다른 컴퓨터나 운영체제에서 실행 할 수 있습니다. 이는 모든 컴퓨터에서 동일하게 동작하는 표준 라이브러리(library) 함수를 프로그래머에게 제공하기 때문이며, 특정 CPU를 가진 컴퓨터 시스템에서만 실행되는 기계-종속적인(machine-dependent) 프로그램이 아닌 어떤 하드웨어든지 지원이 가능한 기계-독립적인(machine-independent) 프로그램 개발이 가능한 언어.

즉, 특정 환경을 가진 시스템이 사용하는 언어가 아닌, 모든 시스템이 사용하는 언어.

 

(2) 저급언어 특성의 논리적 구조를 가진 고급언어

저급언어인 어셈블리어가 가진 많은 연산 기능과 함께 고급언어가 가진 제어구조나 기능적인 모듈을 제공하기 때문에 저급언어 특성의 논리적 구조를 가진 고급언어.

실제로, C언어를 사용하다보면 각종 시스템 제어가 가능하면서, 가독성도 뛰어나다는것을 느낄 수 있음.

 

(3) 논리적이고 구조적이며 함축적인 프로그래밍 가능

C언어는 하나 이상의 함수로 구성된 언어입니다. 따라서 함수를 활용한 논리적이고, 구조적이며, 함축적 프로그래밍 작성이 가능.

함수란 공통된 기능을 수행하기 위한 명령어들을 하나의 독립된 단위로 모아 놓은 모듈이라 할 수 있음. 복잡한 소스코드를 기능에 따라 함수 단위로 나누어 세분화시킴으로써 소스코드에 대한 중복사용을 최소화하고 재사용 가능성을 개선시킨 것을 모듈화라고 함. 또한 이렇게 모듈화된 기능을 각종 제어문들과 함께 사용함으로써 구조화된 프로그래밍 기법을 지원합니다. 모듈화되고 구조화된 소스코드는 프로그램의 크기도 작고, 프로그램의 실행속도도 빠를 뿐만아니라, 소스에 대한 이해가 쉽기 때문에 유지/관리가 편함.

 

(4) 다양한 연산자 및 간결성

다른 언어에 비해 다양한 연산자들을 제공하여 긴 문장을 간결하게 표현 가능.

 

(5) 포인터를 이용한 메모리 관리

포인터는 자료가 저장된 메모리의 주소를 의미하는데, 이러한 포인터는 C언어의 대표적인 기능입니다. 포인터를 잘 활용하면 메모리 주소를 직접 제어할 수 있으므로 효율적인 메모리 관리와 더불어 실행속도를 향상 가능. 하지만 포인터를 잘못 사용하면 디버깅하기가 힘든 실행 중 오류(run-time reeor)가 발생하여 오히려 처리능력을 저하 시킬 수 있으므로 포인터 사용시 신중을 기해야함.

 

 

C의 한계

 1972년에 개발된 C언어는 입출력이 단조로우며, 영상처리 등 메모리를 많이 쓰는 작업에는 적합하지 않다.

 

지난 과정 되짚기

 

Question 1 다음 중 C의 특징이 아닌 것은?

 

  고급언어 특성의 논리적 구조를 가진 저급언어.
  포인터를 이용한 메모리 관리.
  프로그램의 이식성이 높고 하드웨어에 대한 제어가 가능하다.
  다양한 연산자 및 간결성.

 

정답 확인