Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
"operation" : niebezpieczna mieszanka typu "type" i podpisane pole bitowe typu "type"
Uwagi
To ostrzeżenie jest generowane podczas porównywania jedno bitowego pola bitowego ze znakiem do zmiennej bool . Ponieważ jedno bitowe, podpisane pole bitowe może zawierać tylko wartości -1 lub 0, jest niebezpieczne, aby porównać je z bool. Nie są generowane ostrzeżenia dotyczące mieszania bool i jedno-bitowych, niepodpisanych pól bitowych, ponieważ są identyczne bool i mogą zawierać tylko 0 lub 1.
Przykład
Poniższy przykład generuje kod C4807:
// C4807.cpp
// compile with: /W1
typedef struct bitfield {
signed mybit : 1;
} mybitfield;
int main() {
mybitfield bf;
bool b = true;
// try..
// int b = true;
bf.mybit = -1;
if (b == bf.mybit) { // C4807
b = false;
}
}