Frage zu einem Beispiel aus C
-
Hi,
ich lese gerade ein Buch über C, und bin gerade bei dem Punkt Datentypen mit Ganzzahlen. Jetzt wird mir ein Beispiel aufgelistet was so aussieht:
[cpp]int main(void) {
printf("min. char-Wert : %d\n", SCHAR_MIN);
printf("max. char-Wert : +%d\n", SCHAR_MAX);
printf("min. int-Wert : %d\n", INT_MIN);[/cpp]Was es mit min.(minimal), max.(maximal), int-Wert(Datentyp), und INT_MIN(Minimaler Wert) auf sicht hat, weiß ich. Aber was bedeutet %d und SCHAR_MAX?
Wenn ich mich nicht irre, ist der char-Wert auch ein Datentyp für den wir hier den tatsächlichen Wertebereich ermitteln, richtig?
Und bei dem %d kann ich mir vorstellen, dass es das Formatzeichen für den Datentyp int oder short ist. Denn ich kann ja für den Datentyp int und short jeweils das Formatzeichen %d oder %i benutzten. Ist das letztendlich egal, welches ich benutzten möchte? Wenn ihr mir da zustimmt, bleiben zum Schluss nur noch zwei Fragen offen. Was bedeutet denn dann SCHAR_MIN, und wofür steht das +?
Wenn Ihr mir dabei helfen könntet, diese Fragen zu lösen, wäre ich euch dankbar, denn somit kann ich dann auch weiterlesen, ohne irgendwelche Zweifel zu haben
-
Das
%d
ist eine Formatangabe für printf. Damit wird printf mitgeteilt, dass jetzt ein Ganzzahl kommt. Ein char (und auch short) wird dabei in ein int umgewandelt.
siehe printfSCHAR_MIN und INT_MIN un ... sind Makros und stehen in der limits.h
Das wird benötigt, da auf unterschiedlichen Systemen der Wertebereich auch unterschiedlich sein kann.
Das + ist an der Stelle nur Text.
Als%+d
jedoch, wird das Vorzeichen der Zahl immer mit ausgegeben (sonst nur bei negativen Zahlen). siehe printf
-
Deine Antwort hat mir sehr weitergeholfen
printf( ist ein Funktionsaufruf und %D" ist dann eine Formatanweisung. Der gibt den Datentyp des Formates an, zum Beispeil für deine Ganzzahl.