반응형
강점
- 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언어는 그 딴 건 없다.
출처
- K. N. King, 『C Programming : A Modern Approach, 2/E』, W. W. Norton & Company(2008), p4-5.
반응형
'개인공부 > C, C++' 카테고리의 다른 글
[C] GCC와 CC의 차이점 (2) | 2021.02.12 |
---|---|
[C/C++] 지역변수/static 지역변수/전역변수 차이점(storage duration, scope) (0) | 2021.01.26 |
[C/C++] scanf의 작동원리 (2) | 2021.01.24 |
댓글