C11의 최신 변경 사항
C1x는 ISO/IEC 9899:2011, 일명 C11이 되었습니다.
2011년 4월 초안 n1570에서 표준에 어떤 변화가 있는지 아는 사람이 있습니까?
ETA: 런던(2011년 3월)에서 온 위원회 회의록(n1570에 포함되어야 함)과 워싱턴 DC(2011년 10월)에서 온 위원회 회의록이 있습니다. DC 회의록의 변경 승인 목록이 포함되어야 한다고 생각합니다.
N1570과 최종 C11 표준(ISO/IEC 9899:2011(E)) 사이에 중요한 변화가 하나 있었다는 것을 오늘 알게 되었습니다.
N1570에서 6.3.2p3은 다음과 같이 말합니다.
피연산자인 경우를 제외하고는
sizeof연산자, 더_Alignof연산자, 또는 단항형&operator, 또는 배열을 초기화하는 데 사용되는 문자열 리터럴로, "array of type"의 형식을 가진 식을 배열 개체의 초기 요소를 가리키며 l 값이 아닌 "type pointer to type"의 형식을 가진 식으로 변환합니다.
포함되는 것은_Alignof단항 express론의 구문이 허용하기 때문에 오류였습니다.
_Alignof ( type-name )
그러나 그렇지는
_Alignof unary-expression
공개된 C11 표준은 이 오류를 수정하고 C99 문구로 돌아갑니다.
피연산자인 경우를 제외하고는
sizeof연산자, 또는 단항형&operator, 또는 배열을 초기화하는 데 사용되는 문자열 리터럴로, "array of type"의 형식을 가진 식을 배열 개체의 초기 요소를 가리키며 l 값이 아닌 "type pointer to type"의 형식을 가진 식으로 변환합니다.
자세한 정보: N1570과 공개된 표준 간의 차이점에 대해 comp.std.c에 최근 게시한 글에서 ISO C 위원회의 구성원인 Larry Jones는 다음과 같이 썼습니다.
여러 가지가 있지만 대부분은 사소한 편집 변경, 보일러판 텍스트 변경, 권력 유지를 위해 주변 사물을 이리저리 뒤적이는 것에 불과합니다.가장 큰 변화는 추가하지 말았어야 하는 많은 장소에서 정렬(종류 또는 크기가 실제로 종류만 있을 때 하는 것과 같은 표현을 사용한다는 잘못된 개념에 기초하여): 6.3.2.1p2, p3, p4, fn. 65, 6.7.1 fn. 121.을 제거한 것입니다.
-ID:<rfg33a-u0q.ln1@jones.homeip.net>
다음은 groups.google.com 에서 볼 수 있는 스레드입니다.
Jens Gustedt가 댓글로 답변했습니다.
comp.std.c에 대한 Larry Jones의 의견에 따르면 N1569(변경 마커가 없는 N1570)에서 큰 변화가 없었습니다.미해결로 남아있는 유일한 것은 그 가치입니다.
__STDC_VERSION__, 하지만 가장 자연스럽게 그럴 것입니다.201112L.
ISO has ratified and published as ISO/IEC 9899:2011 the new C11 (C1x) standard for the C programming language. The major changes from the previous standard (C99), as written in the C11 Wikipedia article, are the following:
The standard includes several changes to the C99 language and library specifications, such as:
- 얼라인먼트 규격(
_Alignas지정자,_Alignof교환입니다.aligned_alloc기능.<stdalign.h>머리글 파일)- 그
_Noreturn함수 지정자를 사용하는 유형 일반식
_Generic키워드.예를 들어 다음 매크로가 있습니다.cbrt(x)로 번역합니다.cbrtl(x),cbrt(x)아니면cbrtf(x)의 종류에 따라서x:#define cbrt(X) _Generic((X), long double: cbrtl, \ default: cbrt, \ float: cbrtf)(X)- 멀티스레딩 지원(
_Thread_local스토리지 클래스 지정자,<threads.h>스레드 생성/관리 기능, 뮤텍스(mutex), 조건 변수 및 스레드별 저장 기능을 포함하는 헤더 및_Atomictype 한정자 및<stdatomic.h>(무정전 물체 접근).- C 유니코드 기술 보고서 ISO/IEC TR 19769:2004를 기반으로 한 향상된 유니코드 지원 (
char16_t그리고.char32_t변환 함수를 포함하여 UTF-16/UTF-32 인코딩 데이터를 저장하기 위한 유형<uchar.h>그리고 그에 상응하는u그리고.U문자열 리터럴 접두사 및u8UTF-8 인코딩 리터럴의 접두사).- 제거.
gets기능, 이전 C 언어 표준 개정판, ISO/IEC 9899:1999/Cor.3:2007(E)에서 사용되지 않음, 새로운 안전 대안을 선호함,gets_s.- Bounds-checking interfaces (Annex K).
- Analyzability features (Annex L).
- More macros for querying the characteristics of floating point types, concerning subnormal floating point numbers and the number of decimal digits the type is able to store.
- 익명 구조물 및 조합, 조합 및 구조물이 내포된 경우에 유용합니다. 예를 들어,
struct T { int tag; union { float x; int n; }; };.- 정적 주장은 다음 단계에서 번역 중에 평가됩니다.
#if그리고.#error, 번역자가 유형을 이해할 때.- 전용 Create-Open 모드 (
"…x"접미사)의 경우fopen. 다음과 같이 동작합니다.O_CREAT|O_EXCL일반적으로 잠금 파일에 사용되는 POSIX에서.quick_exit프로그램을 종료하는 세 번째 방법으로 기능하며, 다음과 같이 종료할 경우 최소한의 초기화를 수행하도록 의도됩니다.exit패.- 복잡한 값의 구성을 위한 매크로 (일부 이유는 다음과 같습니다.)
real + imaginary*I다음과 같은 경우 기대 값을 산출하지 못할 수 있습니다.imaginary무한 또는 NaN)입니다.
ISO 사이트에서 전체 공개 표준을 구입할 수 있습니다.다음은 ISO 사이트에서 가져온 요약입니다.
ISO/IEC 9899:2011은 C 프로그래밍 언어로 작성된 프로그램의 형태와 해석을 규정합니다.지정합니다.
- C 프로그램의 표현.
- C 언어의 구문 및 제약 조건
- C 프로그램을 해석하기 위한 의미 규칙;
- C 프로그램이 처리할 입력 데이터의 표현.
- C 프로그램에서 생성된 출력 데이터의 표현.
- C의 적합한 구현에 의해 부과되는 제약 및 한계
ISO/IEC 9899:2011에서 명시하지 않음
- C 프로그램이 데이터 처리 시스템에서 사용할 수 있도록 변환되는 메커니즘.
- 데이터 처리 시스템에서 사용하기 위해 C 프로그램이 호출되는 메커니즘.
- 입력 데이터가 C 프로그램에서 사용할 수 있도록 변환되는 메커니즘.
- 출력 데이터가 C 프로그램에 의해 생성된 후 변환되는 메커니즘.
- 특정 데이터 처리 시스템의 용량 또는 특정 프로세서의 용량을 초과하는 프로그램 및 해당 데이터의 크기 또는 복잡성
- 적합한 구현을 지원할 수 있는 데이터 처리 시스템의 모든 최소 요구 사항.ISO/IEC 9899:2011은 다양한 데이터 처리 시스템 간에 C 프로그램의 휴대성을 증진시키기 위해 설계되었습니다.구현자와 프로그래머가 사용하도록 설계되었습니다.
언급URL : https://stackoverflow.com/questions/8631228/latest-changes-in-c11
'programing' 카테고리의 다른 글
| 여러 블로그 설치 간에 Wordpress Core Files를 그대로 공유하기 (0) | 2023.10.20 |
|---|---|
| 스크립트가 로드된 후 javascript 함수 호출 (0) | 2023.10.20 |
| Linux Bash to mysql: 외부 값이 있는 레코드 선택 또는 삭제 (0) | 2023.10.15 |
| Spring GenericFilter Bean의 예외 처리 (0) | 2023.10.15 |
| 플랫폼 간 일관된 의사 난수 (0) | 2023.10.15 |