Mój mały program:Co to jest - (- 128) dla podpisanego znaku jednobajtowego w C?
#include <stdio.h>
int main() {
signed char c = -128;
c = -c;
printf("%d", c);
return 0;
}
druk:
-128
Czy minus (-) przenośny operator całej CPU?
Czy ANSI C do konwertowania prymitywne typy int ** ** Przed wykonaniem arytmetyczna operacje? Dotyczy to Javy (jako stanów Java lang spec), ale czy to prawda dla C? – gavenkoa
@gavenkoa Może być odpowiedź: [C 2011 (n1570) 6.3.1.8 ("Zwykłe konwersje arytmetyczne") 1 stwierdza, że promocje całkowite są wykonywane przed rozważeniem, czy typy są takie same:] (http://stackoverflow.com/questions/12841278/char-and-the-usual-arithmetic-conversion-rules) –
@gavenkoa: Mówiąc wprost, wszystko, co jest "mniejsze" niż "int", jest promowane do 'int' podczas operacji arytmetycznych. Wynik jest następnie przypisany z powrotem do lewej strony. –