kiểm tra bool;Biến bool type được lưu trong bộ nhớ như thế nào? (C++)
sizeof(test) = 1
nếu sử dụng VS 2010. Vì mọi loại dữ liệu C++ phải là địa chỉ, biến bool "thử nghiệm" là 8 bit (1 byte).
Câu hỏi của tôi là biến "test" thực sự chiếm 1 byte trong bộ nhớ?
Có kỹ năng triển khai nào có thể làm cho kiểu dữ liệu bool chỉ chiếm một chút không? Nếu có, bạn có thể cho tôi một ví dụ không?
bool test1[32]
(trong VS 2010), int test2
(trong VS 2010)
Do test1
và test2
chiếm bộ nhớ giống nhau không?
Hãy để tôi nhấn mạnh rằng nó có thể là hợp lý cho một nền tảng để lưu trữ một boolean trong 4 byte trên 32 máy bit khi siêu tối ưu hóa cho tốc độ. Sau đó, nếu bạn có 4 boolean trong một cấu trúc, bạn chỉ cần một hoạt động ALU duy nhất để kiểm tra nếu một bool là true, so với hai khi có nhiều boolean được đóng gói trong một từ máy. (Ofc sự khác biệt nhỏ như vậy thường không quan trọng chút nào.) – Kos
Một số bộ xử lý nhúng thực sự có bộ nhớ địa chỉ bit, do đó biến bool có thể chiếm một bit. –