Mein kleines Programm:Was ist - (- 128) für vorzeichenbehaftete Single-Byte-Zeichen in C?
#include <stdio.h>
int main() {
signed char c = -128;
c = -c;
printf("%d", c);
return 0;
}
Druck:
-128
Ist minus Operator (-) tragbare über CPU?
Does ANSI C konvertieren primitive Typen ** int ** vor der Durchführung arithmetischer Operationen? Dies gilt für Java (wie states Java lang spec), aber gilt das für C? – gavenkoa
@gavenko Vielleicht Ihre Antwort: [C 2011 (n1570) 6.3.1.8 ("Gewöhnliche arithmetische Konvertierungen") 1 besagt, dass die ganzzahligen Promotions durchgeführt werden, bevor geprüft wird, ob die Typen gleich sind:] (http://stackoverflow.com/questions/12841278/char-and-the-ordinary-arithmetic-conversion-rules) –
@gavenko: Locker gesagt, alles, was "kleiner" ist als ein "int", wird während arithmetischer Operationen zu "int" hochgestuft. Das Ergebnis wird dann wieder der linken Seite zugewiesen. –