3P by neo 30일전 | favorite | 댓글 1개
  • Modern C의 C23 에디션이 무료로 다운로드 가능함. 새로운 C 표준인 C23에 맞춰 업데이트된 것이 주요 목적임.
  • 새로운 표준의 내용은 공개 문서에서 가장 가까운 형태로 제공됨. 주요 컴파일러의 새로운 기능 대부분이 이미 구현됨.

C23의 주요 변경 사항 및 추가 사항

  • 정수 관련 변경 사항: _BitInt(N)이라는 새로운 비트 정밀 타입 도입, 오버플로우 체크를 위한 새로운 C 라이브러리 헤더, 비트 조작을 위한 헤더 추가, 현대 아키텍처에서 128비트 타입 가능성, 열거형 타입의 상당한 개선.
  • 새로운 개념: nullptr 상수와 그 기본 타입, 속성으로 구문 주석, 타입 제네릭 프로그래밍을 위한 더 많은 도구(예: autotypeof를 통한 타입 추론), {}를 사용한 기본 초기화(가변 길이 배열 포함), 모든 타입의 명명된 상수를 위한 constexpr.
  • 추가 자료: 복합 표현식과 람다, "국제화"라 불리는 포괄적인 프로그램 실패 접근법에 대한 논의 추가. 기존 플랫폼에서 C23으로 쉽게 전환할 수 있는 임시 포함 헤더와 부록 추가.

GN⁺의 정리

  • Modern C의 C23 에디션은 새로운 C 표준을 반영하여 업데이트되었으며, 주요 컴파일러에서 이미 많은 기능이 구현됨.
  • C23은 정수 타입, 타입 제네릭 프로그래밍, 기본 초기화 등에서 중요한 개선을 제공함.
  • 이 에디션은 C 프로그래밍 언어의 최신 표준을 이해하고 활용하는 데 유용하며, 특히 새로운 기능을 빠르게 습득하고자 하는 개발자에게 도움이 될 수 있음.
  • C23과 유사한 기능을 제공하는 다른 언어로는 C++의 최신 표준이 있음.
Hacker News 의견
  • GCC 11부터 지원이 시작되었으며, 이는 Ubuntu 22.04에서 사용 가능함. C26 지원도 확인 가능함
  • C와 C++는 다르며, 혼합하지 말라는 중요한 조언이 있음
  • C 책 목록을 찾고 있었는데, 스스로 답을 찾음. _Modern C_는 중급 수준으로 분류됨
  • macOS Preview에서 사이드바의 목차가 제대로 작동하지 않음
  • C가 실질적으로 C99에 멈춰 있는 이유를 설명하는 기사를 찾고 있음. C11 이상의 기능을 활용하는 프로젝트는 거의 없다고 함
  • 공룡 마스코트가 여전히 있어서 기쁨. 좋은 책이라고 생각함
  • 컴파일러가 따라잡으면 #embed를 기대하고 있음. 그때까지는 Golang을 사용함
  • [[unsequenced]], [[maybe_unused]], [[noreturn]] 같은 속성 사용이 책 전반에 걸쳐 너무 많다고 생각함. 저자가 선택적으로 사용 가능한 것을 모든 코드 예제에 넣은 것이 지나치다고 느낌
  • 완전히 명시되고 잘 정의된 이식 가능한 비트 필드를 원함
  • 가장 좋아하는 책 중 하나임