# Modern C C23 에디션

> Clean Markdown view of GeekNews topic #17259. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17259](https://news.hada.io/topic?id=17259)
- GeekNews Markdown: [https://news.hada.io/topic/17259.md](https://news.hada.io/topic/17259.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-10-16T09:52:16+09:00
- Updated: 2024-10-16T09:52:16+09:00
- Original source: [gustedt.wordpress.com](https://gustedt.wordpress.com/2024/10/15/the-c23-edition-of-modern-c/)
- Points: 3
- Comments: 1

## Topic Body

- Modern C의 C23 에디션이 무료로 다운로드 가능함. 새로운 C 표준인 C23에 맞춰 업데이트된 것이 주요 목적임.  
- 새로운 표준의 내용은 공개 문서에서 가장 가까운 형태로 제공됨. 주요 컴파일러의 새로운 기능 대부분이 이미 구현됨.  
  
#### C23의 주요 변경 사항 및 추가 사항  
  
- **정수 관련 변경 사항**: `_BitInt(N)`이라는 새로운 비트 정밀 타입 도입, 오버플로우 체크를 위한 새로운 C 라이브러리 헤더, 비트 조작을 위한 헤더 추가, 현대 아키텍처에서 128비트 타입 가능성, 열거형 타입의 상당한 개선.  
- **새로운 개념**: `nullptr` 상수와 그 기본 타입, 속성으로 구문 주석, 타입 제네릭 프로그래밍을 위한 더 많은 도구(예: `auto`와 `typeof`를 통한 타입 추론), `{}`를 사용한 기본 초기화(가변 길이 배열 포함), 모든 타입의 명명된 상수를 위한 `constexpr`.  
- **추가 자료**: 복합 표현식과 람다, "국제화"라 불리는 포괄적인 프로그램 실패 접근법에 대한 논의 추가. 기존 플랫폼에서 C23으로 쉽게 전환할 수 있는 임시 포함 헤더와 부록 추가.  
  
#### GN⁺의 정리  
  
- Modern C의 C23 에디션은 새로운 C 표준을 반영하여 업데이트되었으며, 주요 컴파일러에서 이미 많은 기능이 구현됨.  
- C23은 정수 타입, 타입 제네릭 프로그래밍, 기본 초기화 등에서 중요한 개선을 제공함.  
- 이 에디션은 C 프로그래밍 언어의 최신 표준을 이해하고 활용하는 데 유용하며, 특히 새로운 기능을 빠르게 습득하고자 하는 개발자에게 도움이 될 수 있음.  
- C23과 유사한 기능을 제공하는 다른 언어로는 C++의 최신 표준이 있음.

## Comments



### Comment 30091

- Author: neo
- Created: 2024-10-16T09:52:16+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41850017) 
- GCC 11부터 지원이 시작되었으며, 이는 Ubuntu 22.04에서 사용 가능함. C26 지원도 확인 가능함
- C와 C++는 다르며, 혼합하지 말라는 중요한 조언이 있음
- C 책 목록을 찾고 있었는데, 스스로 답을 찾음. _Modern C_는 중급 수준으로 분류됨
- macOS Preview에서 사이드바의 목차가 제대로 작동하지 않음
- C가 실질적으로 C99에 멈춰 있는 이유를 설명하는 기사를 찾고 있음. C11 이상의 기능을 활용하는 프로젝트는 거의 없다고 함
- 공룡 마스코트가 여전히 있어서 기쁨. 좋은 책이라고 생각함
- 컴파일러가 따라잡으면 #embed를 기대하고 있음. 그때까지는 Golang을 사용함
- [[__unsequenced__]], [[maybe_unused]], [[noreturn]] 같은 속성 사용이 책 전반에 걸쳐 너무 많다고 생각함. 저자가 선택적으로 사용 가능한 것을 모든 코드 예제에 넣은 것이 지나치다고 느낌
- 완전히 명시되고 잘 정의된 이식 가능한 비트 필드를 원함
- 가장 좋아하는 책 중 하나임
