C언어의 특징
장점
- C언어는 운영체제를 만드는 데 사용된 언어!
- 프로그램의 효율성을 높일 수 있다
- 강력하면서도 유연하다 = 어디에든 사용할 수 있다. 그러나 프로그래머의 생산성 면에서 가장 우수한 것은 아니다
- 프로그래머 중심이다 (C++ 의 장점이기도 하다) = 프로그래머에게 많은 권한과 책임을 부여
- 다른 프로그램으로 이식하기 좋다 = 윈도우, 리눅스에서 동일하게 작동
- 작은 하드웨어에서 프로그래밍할 때 좋다
단점
C언어가 쓰이는 곳
- Unix 운영체제
- 컴퓨터게임
- 루카스 필름
- 임베디드 시스템
- 자동화 공장
- 등등 매우 많이 쓰인다
C언어(&C++)는 어디로 가는가?
- 전체적인 순위에서 C, C++가 높은 순위를 차지하지는 않는다
- 그러나 핵심적인 부분에서는 여전히 많이 쓰이고 있다는점!
C언어의 표준
1. K&R C (고전 C언어- 원전 저자들의 이름을 따옴)
- 유닉스와 함께 제공된 라이브러리가 사실상의 표준이 되었다.
2. The Spirit of C
- ANSI C89 (미국표준, 89년)
- ISO C90 (세계표준, 90년)
- 정신
- 프로그래머를 믿어라
- 프로그래머가 필요한 일을 하는 것을 방해하지 마라
- 언어를 작고 단순하게 유지해라
- 한 연산을 할 때 단 한 가지 방법한 제공해라
- 호환(윈도우와 리눅스에서 전부 잘돌아가는지)을 보장할 수 없다 하더라도 속도를 빠르게 해라
3. ANSI/ISO C9X(99~) Committee
- 국제적인 문자집합 추가
- 64비트 프로세서에 대응
- 과학,공학 수치 계산 적합도 개선(Fortran을 대체)
- 언어를 단순하게 유지
- C가 아니라 C++ 를 키우자!
- C언어는 변화에 보수적이지만, C++는 C언어의 특징을 가짐과 동시에 편리한 기능도 커지고 있음
4. The C11 Standard
- C99의 일부를 선택적인 기능으로 변경
- 멀티 프로세서 대응
- 예전에는 코어가 하나밖에 없었지만, 최근에는 코어를 여러 개 집어넣어서 빠르게 하고 있음
5. The C18 Standard
소프트웨어 개발의 7가지 단계
- 목적을 정의한다
- 프로그램을 설계한다
- 목적, 기능을 구현하기 위한 계획 작성하기
- 코드를 작성한다 = 오늘날에는 워드프로세서 쓰는것만큼 편리해짐!
- 계획을 프로그래밍 언어로 옮긴다
- 컴파일한다
- '컴파일러'라는 소프트웨어가 작동해, 코드를 컴퓨터가 이해할수있는 언어로 바꿔준다
- 실행시켜본다
- 시험해보고 오류가 있다면 수정한다
- 앞에서의 목적과 부합하는지 확인해보는 과정
- 이 과정을 '디버깅'이라고 한다
- 프로그램을 유지하고 개선해 나간다
C언어와 함수
프로그래밍에서 함수는 '기능'과 비슷한 의미이다.
입력 → 함수 → 출력
밀가루 → 함수 → 빵
프로그램 설계 능력 = 함수를 만들고 입출력을 잘 정의할 수 있다는 것!