Tôi hiện đang đọc một bản thảo của đặc tả C11. Các từ khóa được giới thiệu mới: _Bool, _Alignof, _Atomic
tất cả đều cảm thấy giống như các tiện ích mở rộng tùy chỉnh, thay vì các từ khóa dành riêng tiêu chuẩn như struct, union, int
.
Tôi nhận ra rằng tiêu chuẩn về cơ bản bao gồm các phần mở rộng được tiêu chuẩn hóa ... nhưng vẫn còn, điều này thật tồi tệ! Có lẽ chúng ta sẽ sớm kết thúc với việc __Long_Long_Reallylong_Integer_MSVC_2020_t
leo trong tiêu chuẩn!
Là khả năng tương thích ngược của mã không chuẩn là lý do duy nhất cho phong cách mới của từ khóa?
<stdbool.h>
tệp tiêu đề thực hiện C11 nào cũng phải bao gồm macro tiền xử lý, chẳng hạn như #define bool _Bool
. Đây là một giải pháp gọn gàng vì nó vẫn giữ được khả năng tương thích ngược, nhưng cho phép mọi mã mới, bao gồm tệp tiêu đề mới, sử dụng cú pháp hấp dẫn hơn.