tôi có thể không có vẻ để thoát khỏi cảnh báo này cho các dòng mã sau đây:Làm thế nào để đàn áp C CS0675 # cảnh báo: Bitwise-hoặc nhà điều hành được sử dụng trên một toán hạng đăng nhập mở rộng
d.word[wrdIndex++] = d.GetWord(english) | (ulong)i;
cảnh báo áp dụng cho mã sau toán tử gán. phương pháp GetWord trả về một ulong. Tôi đã thử những điều sau đây để không có kết quả:
d.word[wrdIndex++] = (d.GetWord(english) | (ulong)i);
d.word[wrdIndex++] = d.GetWord(english) | ((ulong)i);
d.word[wrdIndex++] = ((ulong)d.GetWord(english)) | ((ulong)i);
Bất kỳ ai có ý tưởng?
Mã chắc chắn làm những gì cần (và đây là cách đúng để làm những gì tôi muốn trong trường hợp này tôi nghĩ) - Tôi chỉ ngạc nhiên rằng lần thứ 2 của 3 lần thử: d.GetWord (tiếng Anh) | ((ulong) i) vẫn đưa ra cảnh báo khi ((ulong) i) được đúc thành một ulong trước khi toán tử OR bitwise được áp dụng, đúng không? –
Ah, bây giờ tôi hiểu - nó thực sự khá thông minh của trình biên dịch để cảnh báo tôi về điều này tôi đoán. Có cách nào để đúc để ulong mà không có phần mở rộng dấu (khác hơn là bằng cách che off bit đầu bằng tay)? –
truyền đến đầu tiên. '(ulong) (uint) i' – CodesInChaos