3 điểm bởi GN⁺ 2024-10-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Phiên bản C23 của Modern C hiện có thể tải xuống miễn phí. Mục đích chính là cập nhật theo tiêu chuẩn C mới là C23.
  • Nội dung của tiêu chuẩn mới được cung cấp ở dạng gần nhất với các tài liệu công khai. Hầu hết các tính năng mới của những trình biên dịch chính đã được triển khai.

Các thay đổi và bổ sung chính của C23

  • Các thay đổi liên quan đến số nguyên: giới thiệu kiểu có độ chính xác bit mới _BitInt(N), header thư viện C mới để kiểm tra tràn số, bổ sung header cho thao tác bit, khả năng có kiểu 128-bit trên các kiến trúc hiện đại, và cải tiến đáng kể cho kiểu enum.
  • Các khái niệm mới: hằng nullptr và kiểu cơ sở của nó, chú thích cú pháp bằng thuộc tính, nhiều công cụ hơn cho lập trình generic theo kiểu dữ liệu (ví dụ: suy luận kiểu thông qua autotypeof), khởi tạo mặc định bằng {} (bao gồm cả mảng độ dài biến đổi), constexpr cho các hằng được đặt tên của mọi kiểu.
  • Tài liệu bổ sung: thêm thảo luận về biểu thức hợp thành và lambda, cũng như cách tiếp cận toàn diện đối với lỗi chương trình được gọi là "quốc tế hóa". Cũng có thêm header include tạm thời và phụ lục để dễ dàng chuyển từ các nền tảng hiện có sang C23.

Tóm tắt của GN⁺

  • Phiên bản C23 của Modern C đã được cập nhật để phản ánh tiêu chuẩn C mới, và nhiều tính năng đã được triển khai trên các trình biên dịch chính.
  • C23 mang đến các cải tiến quan trọng về kiểu số nguyên, lập trình generic theo kiểu dữ liệu, khởi tạo mặc định, v.v.
  • Phiên bản này hữu ích để hiểu và tận dụng tiêu chuẩn mới nhất của ngôn ngữ lập trình C, đặc biệt phù hợp với các lập trình viên muốn nhanh chóng nắm bắt những tính năng mới.
  • Một ngôn ngữ khác cung cấp các tính năng tương tự C23 là các tiêu chuẩn mới nhất của C++.

1 bình luận

 
GN⁺ 2024-10-16
Ý kiến trên Hacker News
  • Hỗ trợ đã bắt đầu từ GCC 11, và có thể dùng trên Ubuntu 22.04. Cũng có thể kiểm tra hỗ trợ C26
  • C và C++ là khác nhau, và có lời khuyên quan trọng là đừng trộn lẫn chúng
  • Đã từng tìm danh sách sách về C, nhưng tự tìm được câu trả lời. Modern C được xếp ở mức trung cấp
  • Mục lục ở thanh bên trong macOS Preview không hoạt động đúng cách
  • Đang tìm một bài viết giải thích vì sao C trên thực tế bị mắc kẹt ở C99. Người này nói rằng gần như không có dự án nào tận dụng các tính năng từ C11 trở lên
  • Vui vì linh vật khủng long vẫn còn ở đó. Nghĩ đây là một cuốn sách hay
  • Đang mong chờ #embed khi trình biên dịch bắt kịp. Cho đến lúc đó thì dùng Golang
  • Nghĩ rằng các thuộc tính như [[__unsequenced__]], [[maybe_unused]], [[noreturn]] được dùng quá nhiều xuyên suốt cuốn sách. Cảm thấy tác giả đã đi quá đà khi đưa các thứ chỉ dùng tùy chọn này vào mọi ví dụ mã
  • Muốn có các bit field di động, hoàn toàn tường minh và được định nghĩa rõ ràng
  • Đây là một trong những cuốn sách yêu thích nhất