Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wozu diese ( h) und warum gibt es nicht Beispiel bei int iVal?

Empfohlene Antworten

  • Autor

warum überhaupt ( h  UND hh) 

wir haben hier (%i) oder (%s) oder (%d) wenn wir String oder Ganzzahl dann nutzen wir diese Format ( %d) oder (%s) ds ist klar. aber WOZU diese ( h und hh) ? ich verstehe NIX

 uach warum oder wozu schriben ich auch ( %lld)?
ich weiss ( %d) und ganzzahl auszugeben.

Aber diese ( ll) ist weil diese long long inter? aj ich weiss , aber wozu schriebn ich diese ( ll, hh, h ) nben diese ( %) ???

Bearbeitet von zaid38

Hast du dir den Link von @Whiz-zarDmal angeschaut? Da steht doch eigentlich alles drin:

grafik.png.f049b748eabfb32b8e265c319523655a.pnggrafik.png.a91dbb7a92790fd97fc35b3d0718a994.png

grafik.png.f49eecc4b5dfd00ea72bfdaa41d75811.png

Das bedeutet, dass du mit den Zusätzen h, hh oder ll die Länge des Datentypen modifizierst. Wenn du, wie in deinem Beispiel, zur Ausgabe den Format-Specifier d nutzt, ist das der Datentyp 'singed decimal integer' also ein Integer mit Vorzeichen im Dezimalsystem. D.h. der Ausgabedatentyp hat eine Größe von 16 Bit. Deine Datentypen, die du ausgeben möchtest, haben aber unter Umständen eine andere Größe. Darum wird dem Ausgabe-Specifier eine entsprechende Länge mitgegeben.
Du kannst ja mal ein wenig damit herumspielen und testen, was mit deiner Ausgabe passiert. Beispiel:

long lVal = 123456;

printf("%hd\n", lVal);		//die Ausgabe wäre nicht mehr 123456!

 

Übrigens beantwortet der Link von @Whiz-zarD auch ein wenig deine Frage aus dem anderen Thread zur Wertzuweisung von dem 'signed char cVal=100;'. Char ist hier erst einmal auch nur ein Datentyp der Länge 8 Bit, der einen Wert speichert. Dieser Wert kann entweder als Zahl zugewiesen werden, wie in deinem Beispiel. Oder als ein Zeichen in einfachen Anführungszeichen (die Zuweisung cVal = '100' würde übrigens zu einem Overflow-Fehler führen, da es kein einzelner Character ist, sondern eine Kette von 3 Zeichen). Wie der Wert bei der Ausgabe konvertiert wird, hängt dann vom entsprechenden Format-Specifier ab. Wenn du also statt %d %c schreibst, wird der Wert der zugewiesenen Variable als Character interpretiert und entsprechend der ASCII-Tabelle als Zeichen ausgegeben:

printf("%hhd\n", cVal);    //Ausgabe: 100
printf("%c\n", cVal);      //Ausgabe: d

Anders herum geht das übrigens auch: Du kannst auch einen Integer-Wert als Zeichen ausgeben mittels %c.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.