본 포스트에서는 C언어의 국제 표준안들에 대해서 간략히 알아보도록 하겠다.
ANSI C 혹은 C89
C 언어가 처음으로 만들어진 것은 1970년대초이고 이후 다양한 분야에서 다양한 사람들에 의해 사용되고 또 발전했다, 서로 다른 집단에 의해 변형된 C 언어가 어느 정도 같은 틀을 공유한다고 해도 1980년대에 들어서면서 다양한 C 언어들이 독자적으로 지원하는 확장 기술은 서로 호환되지 않게 되었다. 또한 C언어가 미국 정부 프로젝트를 위해 사용되기 시작하면서 미국의 표준화 기구인 ANSI에 의해 표준화가 1980년대 초반에 시작되게 된다. 이후에 1989년도에 탄생한 C언어 표준이 지금까지 C언어 서적에서 인용되고 있는 ANSI C(정확히는 ANSI X3.159-1989)이다. 발표된 연도를 이용해서 줄여서 C89라고 불리기도 한다. 1990년도에는 국제 표준화 기구인 ISO가 몇 가지 형식부분만을 바꿔 ISO표준을 발표했고 이를 C90이라고 부르는데 결국 C89와 같은 것이다. ANSI C는 대부분의 컴파일러가 지원한다.
C99
ANSI의 표준화 이후 C 언어 표준이 상대적으로 정적으로 남아 있었던 동안, C++는 표준화를 위하여 계속 진화하고 있었다. 1995년에 1990년의 C 표준에 대한 규약 수정안 1이 출판되었는데, 이는 약간의 세부 사항을 교정하고 국제적 문자 세트에 대한 보다 확장된 지원을 위한 것이었다. C 표준은 1990년대 후반에 더 개정되어, 1999년 ISO/IEC 9899:1999가 출간되었고, 여기서 명시한 규범을 흔히 C99라 부른다. 몇몇 추가점들을 기술하면 다음과 같다. (http://ko.wikipedia.org/wiki/C99 참조)
- 인라인(inline) 함수의 지원.
- 변수의 선언은 더이상 파일 범위나 복합 명령어의 시작에서만 할 필요가 없다.
- long long int, 선택적인 확장 정수형, 명시적 불린 자료형, 그리고 복소수를 나타내기 위한 complex 자료형 등 새로운 자료형 도입.
- 가변 길이 배열(VLA: variable-length array) 지원.
- // 으로 시작하는 한 줄 주석 지원.
- IEEE 부동소수점 자료에 대한 개선된 지원.
C11
C11은 ISO/IEC 9899:2011의 줄임말로 C 언어의 최신 개정된 표준을 의미한다. 이전까지 표준이던 C99의 후속으로 최종안이 2011년 4월에 제출되었고 검토를 거쳐 2011년 12월 8일에 최종 승인되었다. GCC 4.6, Clang 3.1, IBM XL C 12.1, MSVC 18 등이 C11의 일부 기능을 지원한다.
댓글 없음:
댓글 쓰기