Приведенный ниже код выдает ошибку clang-tidy:
[clang-tidy] hi cpp побитовые операции со целыми числами со знаком
// File 1: Clang - Tidy not enabled
typedef struct A {
struct { uint32_t b; } c;
} A;
// File 2: Clang-Tidy enabled
A *ptr;
// Some code that assigns values at the address pointed by ptr
...
...
const uint32_t mask = 0xFFFF0000;
uint32_t masked_var = ptr->c.b & mask;
Когда Я изменяю код, как показано ниже, эта ошибка исчезла:
uint32_t masked_var = ptr->c.b & (static_cast<uint32_t>(mask));
В этом примере mask
уже не подписано?