CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): shamin (S Kim)
날 짜 (Date): 2003년 5월 28일 수요일 오후 01시 06분 44초
제 목(Title): Re: [Q]C언어



>1989년에 제안되고 1990년에 발표된 기존의 C standard를 C89나
>C90이라고 부릅니다.

C89  = ANSI C
C90  = ISO/IEC 9899:1990, "Programming Language -- C"


> 이 표준은 1999년에 다시 바뀌게 되는데 이 표준을 C99라고 하죠.

C99 = ISO/IEC 9899:1999 "Programming Language -- C"
    = ANSI/ISO/IEC 9899:1999 "Programming Language -- C"

>ahsarang님 말씀처럼 -ansi나 -std=c99, -std=iso9899:1999와 같은
>옵션을 이용하면 GCC가 C99에 따라 동작하도록 할 수 있습니다.

-ansi for C90(ISO C90)
-std=c89 for ANSI C
-std=iso9899:1990 for ISO C90(same as -ansi)
-std=iso9899:199409 for C95(AMD1)
-std=c99 for C99
-std=iso9899:1999 for C99
-std=c9x for C99 draft
-std=iso9899:199x for C99 draft


>94년과 96년에도 약간의 마이너 업그레이드 표준이 발표되었지만

C94 = Technical Corrigendum 1
C95 = ISO/IEC 9899:1990/Amd.1:1995, "Programming Languages - C", 
      AMENDMENT 1:C Integrity


>이들은 널리 채택되지는 않았습니다. 94, 96, 99를 모두 합쳐서
>C9X라고 부르기도 합니다.

이 부분은 잘못된 설명같습니다. C95부터는 국제표준입니다. 널리
채택되지 않았다는 말씀이 어떤 말씀이신지... 

그리고, C9X는 C99가 확정되기 이전에 draft를 일컽는 말입니다.


>그리고 candor님께서 질문하신 내용은 variable length array라고
>해서 이전의 constant expression만을 array의 크기로 지정할 수 있었던
>것을 C9X에서 variable expression으로 지정할 수 있게 바뀐 거죠.

네. C99에서 VLA는 표준이 되었습니다. 

더 이상 C9x라고 C 표준을 호칭할 이유가 없습니다. C99를 사용하십시오.



--
S Kim
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.