장점
- 단순하다. 어셈블리언어보다는..
- 빌드 후 바이너리 파일 크기가 작고 속도가 빠르다.
- 자유도가 정말 높은거 같다. 저수준 level(하드웨어 제어 등) 까지 코딩가능.
단점
- 포인터를 심도있게 사용하기 위해서는 이해하기 겁나 힘들다.. 포인터의 주소의 포인터의 포인터의 포인터의~~~주소의 수소의 주소의 &&&&&* 의 연속
- memory leak 관리하기 힘들다.. 직접 메모리 해제를 해줘야 하는 불편함.. 잘못하면 메모리 뻥튀기!
- exception 처리가 없다.. if 문으로 대체해야함..
총평
현대 프로그래밍 언어들의 아버지격? 이지만 심도있게 배우기 시작하면 한도 끝도 없이 어렵다.
그리고 포인터, 메모리 관리 등 신경써야 할 부분이 많아 실제 내가 원하는 프로그램을 만들기 위한 효율이 너무너무 안좋다. 하드웨어 직접 제어등 꼭 C언어를 써야하는 환경이 아니라면 사용하지 않는 것이 좋다.