본문 바로가기
개인공부/C, C++

[C/C++] C언의 강점과 약점

by BuyAndPray 2021. 1. 10.
반응형

 

강점

  • efficiency
    • C언어는 애초에 assembly 언어를 사용하는 UNIX 운영체제를 위해 개발된 프로그래밍 언어이기 때문에 C언어는 빠르고, 효율적으로 메모리 자원을 활용할 수 있다.
  • portability
    • 보통 내가 만든 프로그램이 PC를 포함 안 다양한 디바이스에서 동작하게 만들고 싶을 때 주로 C언어를 사용한다. C언어의 이식성이 좋은 이유는 C가 초창기에 현재 많은 OS의 기반이 되는 UNIX를 위해 개발된 언어이고, ANSI/ISO에 의해서 표준화가 진행되었기 때문에 여러 갈래로 나누어지지 않았기 때문이다. 또한 C compiler 자체의 크기가 매우 작고 쉽게 적을 수 있기에 C언어는 높은 이식성의 강점을 지니고 있다.
  • power
    • C언어는 많은 data type과 operator들을 가지고 있기 때문에 C언어를 활용하면 몇 줄 만에 간단히 프로그램을 짜는 것도 가능하다.
  • flexibility
    • C는 원래 system programming을 위해 디자인된 언어이지만, system programming에만 사용 가능한 것이 아니다. 현재 C언어는 다양한 곳에서 사용되고 있으며 코딩할 때 다른 언어와 다르게 제약조건이 많지 않은 특징을 지니고 있다.
  • standard library
    • C언어는 input/output, string handling, storage allocation 등의 기능을 위한 다양한 함수를 제공하는 강력한 standart library를 지니고 있다.
  • integration with UNIX
    • 앞서 말했듯이 C언어는 UNIX를 관리하기 위해서 개발되었기 때문에 LINUX 같은 UNIX 기반 운영체제와 궁합이 잘 맞다.

 

약점

  • C programs can be error-prone
    • C언어의 flexibility 강점(제약조건이 많지 않은 특징)은 C언어를 에러가 나기 쉬운 언어로 만들었다. 다른 프로그래밍 언어에서는 쉽게 잡을 수 있는 에러들도 C compiler가 놓치는 경우가 많다. 또한, 세미콜론을 잘못 사용하는 사수한 실수에도 프로그램이 쉽게 종료될 수 있기 때문에 잘 코딩해야 한다.
  • C programs can be difficult to understand
    • C언어는 다른 언어들에서 쓰이지 않는 C만의 독창적인 feature을 많이 지니고 있고 이 feature들은 보통 다른 feature와 함께 사용된다. 따라서 다른 사람이 적힌 코드를 볼 때 왜 이 부분에 feature을 사용했는지 이해하기 어려운 경우가 많다.
  • C programs can be difficult to modify
    • 내가 직접 짠 게 아니라면 C언어로 구현된 큰 프로그램은 바꾸기가 정말 힘들다. 다른 언어들은 잘 구성된 프로그램을 짤 수 있게 class나 package들을 제공하지만, C언어는 그 딴 건 없다.

 

출처

반응형

댓글