[C언어의 역사]

  • 1972년 벨 연구소의 켄 톰슨과  데니스 리치에 의해 탄생
  • 현재 대부분의 운영체제(windows, linux,OSX 등)의 중심부분(커널)이 C언어를 이용해서 구현됨.
  • 스마트TV, 세탁기, 냉장고와 같은 임베디드 시스템에서도 주로 C언어가 탑재되어 사용되고 있음.

 

▶ K&R C

  • 1978년 <The C Programming Language> 발간(브라이언 커니핸 & 데니스 리치)
  • 작가 두 사람의 이름을 따 K&R로 부름
  • 비공식적으로 오랫동안 C언어의 규격 역할을 함

< 특징 >

- 표준 입출력 라이브러리 지원

- long int를 통해 자료 타입 확장

- unsigned int를 통해 무부호 자료형 지원

- 복합 대입 연산자 지원         

 

▶ ANSI C(1989), ISO C(1990)

  • ANSI가 위원회를 소집하여 1989년 C언어 표준 제정
  • K&R C의 확장안 성격, 연도를 따서 C89라고 불림
  • 1990년 ISO에서 ISO/IEC 9899:1990이라는 또 다른 공식 명칭으로 채택
  • 두 표준의 내용은 동일
  • 먼저 승인된 C89로 많이 불림
  • 대부분의 C 컴파일러가 이 표준을 따름

< C99(1999) >

 -  1999년 ISO/IEC 1999 표준안 발표, 이후 세 차례 개정

 - c++에서 사용되던 한 줄짜리 주석 지원

 - 빠른 성능을 위해서 인라인 함수도 도입

 - long long int로 데이터 타입 확장

 - 참과 거짓을 표현할 수 있는 boolean 자료형 지원 - 복소수 표현을 위해 complex 타입 지원 - 배열 크기를 변수를 통해 지정 가능한 가변 길이 배열 지원 - 복합 리터럴 지원 - IEEE 754의 부동 소수점 지원 강화 - 가변 매크로 인수 지원  - 최적화를 위해 restrict한정자 지원

 

< C11(2011), C18(2018) >

 - 비공식으로 "C1X"라 불리던 C언어 표준의 개정판이 2011년 승인 

 - 2018년 최신 표준인 C18이 최종 승인

 - 정렬 기능 지원

 - _noreturn을 통해 함수 한정자 지원

 - 형에 따른 제네릭 기능 지원

 - 멀티쓰레드 지원

 - 향상된 유니코드 지원  - 메모리 경계 검사 가능

 - gets 제거, gets_s 대신 지원

 - 이름 없는 구조체나 공용체 사용이 편리해짐

 - fopen에서 배타적 생성 모드 지원

 - qucik_exit 지원

 

▶ C언어는 계속 진화하고 있음

 

 

*본 게시글은 K-MOOC <C프로그래밍 개론>수업을 참고한 게시글입니다.

'C언어' 카테고리의 다른 글

[C언어] 프로그램 작성 실습과 유의사항  (0) 2021.05.22
[C언어] 설치하기(무료)  (0) 2021.05.22
[C언어] 프로그램 개발 과정  (0) 2021.05.22
[C언어] 특징  (0) 2021.05.22
[C언어] 용어정리  (0) 2021.05.22

+ Recent posts