C99: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Klutzy:bot (토론 | 기여)
잔글 로봇: 분류:C언어 수정
편집 요약 없음
1번째 줄:
'''C99'''는 [[C (프로그래밍 언어)|C 언어]]의 현대 개정판이다.
 
== C99의 역사 ==
[[ANSI]]의 표준화 이후 [[C (프로그래밍 언어)|C 언어]] 표준이 상대적으로 정적으로 남아 있었던 동안, [[C++]]는 표준화를 위하여 계속 진화하고 있었다. 1995년에 1990년의 C 표준에 대한 규약 수정안 1이 출판되었는데, 이는 약간의 세부 사항을 교정하고 국제적 문자 세트에 대한 보다 확장된 지원을 위한 것이었다. C 표준은 1990년대 후반에 더 개정되어, 1999년 ISO/IEC 9899:1999가 출간되었고, 여기서 명시한 규범을 흔히 C99라 부른다. 이는 기술적 교정에 의하여 현재까지 3번의 수정이 있었다. 국제 C 표준은 실무 그룹 ISO/IEC JTC1/SC22/WG14에 의해 관리되고 있다.
 
==C99의 새로운 기능 ==
C99는 다음과 같은 기능들을 포함하고 있다. 이들 중 일부는 이미 일부 컴파일러에 확장 기능으로서 포함된 적이 있다.
* [[인라인 함수]]의 도입
33번째 줄:
C99는 대부분의 영역에서 C90과 [[하위 호환성|하위 호환]]되지만, 일부는 더 엄격해졌다. 특히, 형식 지정자가 빠진 선언을 <code>int</code> 자료형으로 더이상 간주하지 않는다. C 표준 위원회에서는 컴파일러들이 형식 지정자를 실수로 빠뜨린 것을 조용히 넘어가기보다는 문제로서 진단하는 것이 더욱 가치가 있다고 보고 이러한 결정을 내렸다. 실제 컴파일러는 형식 지정자가 빠진 것을 오류로 지적할 가능성이 높지만, <code>int</code>가 지정된 것으로 보고 번역을 계속 할 수도 있다.
<!-- C99 is for the most part backward compatible with C90, but is stricter in some ways; in particular, a declaration that lacks a type specifier no longer has int implicitly assumed. The C standards committee decided that it was of more value for compilers to diagnose inadvertent omission of the type specifier than to silently process legacy code that relied on implicit int. In practice, compilers are likely to diagnose the omission but also assume int and continue translating the program. -->
 
== C++와의 호환성 ==
C99 표준의 일부는 TR1이나 [[C++0x]] 같은 C++의 제안된 확장에 포함되어 있다. 정수형, 헤더 파일, 라이브러리 함수 등도 제안에 포함되어 있다.
 
== 버전 감지 ==
표준 매크로 <code>__STDC_VERSION__</code>가 <code>199901L</code>로 정의되면 C99 지원이 가능함을 나타낸다. C90에서의 <code>__STDC__</code> 매크로처럼, <code>__STDC_VERSION__</code>은 C90과 C99간에 다르게 컴파일할 수 있는 코드를 작성하는데 사용할 수 있다.
줄 44 ⟶ 46:
#endif
</source>
 
== 주요 컴파일러들의 지원 ==
[[GNU 컴파일러 모음|GCC]] 등의 C 컴파일러들은 이제 C99의 새로운 기능들을 대부분 지원한다. 그러나, [[마이크로소프트]]나 [[볼랜드]] 등의 벤더들은업체들은 C99를 별로 지원하지 않았는데, 이는 비슷한 기능 개선이 이미 되어 있는 [[C++]]에 치중했기 때문이다.
 
GCC의 경우, C99의 기능 명세를 상당히 많이 지원하지만([[2008년 11월]] 현재 41개), 아직 완벽한 지원은 아니다. 2008년 11월을 기준으로 9개의 기능들은 제대로 작동하지 않거나 지원되지 않는다.
줄 53 ⟶ 56:
C의 [[인터프리터]]인 Ch도 C99의 주요 기능들을 지원한다.
 
== 바깥 고리 ==
* {{PDFlink|[http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf Final version of the C99 standard with corrigenda TC1, TC2, and TC3 included, formatted as a draft]|3.61&nbsp;MB}}
* {{언어고리|en}} [http://www.open-std.org/jtc1/sc22/wg14/www/newinc9x.htm New in C9X]
 
{{토막글|소프트웨어}}