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 printf

    SCHAR_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.


Anmelden zum Antworten