[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 |