Bất cứ ai có thể giải thích cho tôi sự khác biệt giữa _Bool và kiểu dữ liệu bool trong C là gì? Ví dụ:Sự khác biệt giữa _Bool và các kiểu bool trong C?
_Bool x = 1;
bool y = true;
printf("%d", x);
printf("%d", y);
Bất cứ ai có thể giải thích cho tôi sự khác biệt giữa _Bool và kiểu dữ liệu bool trong C là gì? Ví dụ:Sự khác biệt giữa _Bool và các kiểu bool trong C?
_Bool x = 1;
bool y = true;
printf("%d", x);
printf("%d", y);
Những kiểu dữ liệu đã được thêm vào C99. Vì bool
không được đặt trước C99, chúng sử dụng từ khóa _Bool
(đã được đặt trước).
bool
là bí danh cho _Bool
nếu bạn bao gồm stdbool.h
. Về cơ bản, bao gồm tiêu đề stdbool.h
là dấu hiệu cho thấy mã của bạn OK với mã định danh bool
là 'đã đặt trước', tức là mã của bạn sẽ không sử dụng mã đó cho mục đích riêng của nó (tương tự cho số nhận dạng true
và false
).
+1 để bao gồm lịch sử. – Lindydancer
Ý định dài hạn dường như là tiêu chuẩn cuối cùng sẽ được sửa đổi để làm cho bool một từ khóa. Đây là bước 1, nơi bạn có thể sử dụng
Tôi không hiểu tại sao điều này phải mất hai thập kỷ cho rằng nó là một cải tiến khá rõ ràng. Mã không thích thay đổi này vẫn có thể được biên dịch bằng các phiên bản trình biên dịch hiện tại. –
Không có sự khác biệt.
bool
là macro mở rộng thành _Bool
trong stdbool.h
.
Và true
là macro mở rộng tới 1 trong stdbool.h
'bool' cũng phải là typedef, C không có loại đó. –
Tương tự với _Complex so với phức tạp. –