Tôi đọc ở đâu đó sử dụng BOOL (typedef int) là tốt hơn so với sử dụng loại bool tiêu chuẩn C++ vì kích thước của BOOL là 4 byte (nghĩa là bội số của 4) và nó tiết kiệm các hoạt động căn chỉnh của các biến vào sổ đăng ký hoặc một số thứ dọc theo các đường đó ...C++ BOOL (typedef int) vs bool cho hiệu suất
Có sự thật nào về điều này không? Tôi tưởng tượng rằng trình biên dịch sẽ pad các khung stack để giữ cho sự sắp xếp của nhiều của 4s ngay cả khi bạn sử dụng bool (1 byte)?
Tôi không phải là chuyên gia về các hoạt động cơ bản của các sắp xếp, sổ đăng ký, v.v. vì vậy tôi xin lỗi trước nếu tôi đã hoàn toàn sai. Tôi hy vọng sẽ được sửa chữa. :)
Chúc mừng!
Nếu 'bool' nhanh hơn 4 byte, trình biên dịch sẽ tạo 4 byte. Nó phụ thuộc vào kịch bản. Vì vậy, không, 'BOOL' không mang lại lợi ích hiệu suất. – tenfour
Đây là loại điều bạn chỉ có thể tìm hiểu thông qua lược tả, nhưng bạn có muốn một bool có thể có giá trị khác 0,1 không? Ngay cả giá trị âm? – juanchopanza
Điều này sẽ không tạo ra bất kỳ sự khác biệt nào. Các trình biên dịch các giá trị để đảm bảo rằng chúng được liên kết đúng cách. Sử dụng loại phù hợp nhất. Nếu đó là một giá trị Boolean, làm cho nó là một 'bool', không phải là một' int' (hoặc một số 'typedef' của nó). –