Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'~' : Null, die 'type1' auf 'type2' von größerer Größe erweitert
Das Ergebnis des ~ Operators (bitweise Ergänzung) ist nicht signiert und wird dann null erweitert, wenn er in einen größeren Typ konvertiert wird.
Beispiel
Im folgenden Beispiel ~(a - 1)
wird als nicht signierter langer 32-Bit-Ausdruck ausgewertet und dann durch Nullerweiterung in 64 Bit konvertiert. Dies kann zu unerwarteten Vorgangsergebnisse führen.
// C4319.cpp
// compile with: cl /W4 C4319.cpp
int main() {
unsigned long a = 0;
unsigned long long q = 42;
q = q & ~(a - 1); // C4319 expected
}