Tôi đang thử nghiệm một ví dụ đoạn mã mà tôi tìm thấy như là một câu trả lời trên another Questionhành && không thể áp dụng
Tuy nhiên trình biên dịch được phun ra này "hành & & không thể được áp dụng cho toán hạng của lâu loại và bool". Tại sao lại thực hiện điều này? Khi tôi đọc mã, nó nói "Nếu mặt nạ và quyền lớn hơn 0 trở lại thành công bool"
Tôi có đọc sai không?
(Ngoài ra, không ai gọi nó ra như một tấm gương xấu vì vậy tôi mong đợi nó để làm việc. Không phải là tôi là một copy-paste coder)
bool CheckMask(long Mask, long TestPermission) {
return Mask && TestPermission > 0;
}
long mask = 4611686844973976575;
const long MASK_ViewListItems = 0x0000000000000001;
bool HasPermission_ViewListItems = CheckMask(mask, MASK_ViewListItems);
// HasPermission_ViewListItems is true
const long MASK_UseClientIntegration = 0x0000001000000000;
bool HasPermission_UseClientIntegration = CheckMask(mask, MASK_UseClientIntegration);
// HasPermission_UseClientIntegration is false
Có một awful nhiều câu hỏi tương tự trên StackOverflow và tôi đã nhấp qua hầu hết trong số họ, có một danh sách lớn ở bên phải của tôi khi tôi nhập. Không có gì áp dụng cho tình huống của tôi, ít nhất tôi đã có thể thấy mối quan hệ giữa các câu trả lời và vấn đề của tôi.
Cảm ơn, điều này rất thông tin - đã kết thúc việc học một chút công bằng về việc chuyển bit thực hiện những ý tưởng này. – Amicable