ich die Sprache C++ zu studieren, und ich habe einige Zweifel über Typumwandlung, könnten Sie mir erklären, was wie dies in einem Ausdruck kommt:Was passiert, wenn ich signierte und vorzeichenlose Typen mische?
unsigned int u = 10;
int a = -42;
std::cout << u - a << std::endl;
ich weiß hier, dass das Ergebnis 52 sein wird, wenn ich die Anwendung Regeln, wenn wir zwei mathematische Operatoren haben. Aber ich frage mich, was passiert, wenn der Compiler zu einem vorzeichenlosen Wert ein temporäres von unsigned Typ zu konvertieren, was passiert danach? Der Ausdruck sollte jetzt 10 -4494967254 sein.
Warum versuchst du es nicht zu sehen? – dandan78
@ dandan78 Ich möchte verstehen, wie der Compiler auf dem zugrunde liegenden –
@ dandan78 arbeitet: manchmal kann das naiv sein; vor allem, wenn irgendein Aspekt der Berechnung nicht definiert ist. – Bathsheba