Forum: Mikrocontroller und Digitale Elektronik Nachfrage zu Code


von Doggy_Dog (Gast)


Lesenswert?

Hallo zusammen!

Ich habe ein Codebeispiel zum DHT22 auf der Seite www.pgollor.de 
gefunden und habe zu einem Teil eine Frage.


printf("%i,%i%% %i,%iC" CR, humidity/10, humidity%10, temp/10, temp%10);

Was passiert da? CR habe ich nachgesehen und ist einfach nur ein 
Zeilenumbruch. %i gibt den Integriert der hinten angestellten Variable 
aus aber was macht %i%%? oder %iC? Ist das % und C einfach nur die 
Einheit die hinten angestellt wird?
Die Variable temp/10 bedeutet das der Inhalt durch 10 geteilt wird?


Danke für eure Hilfe :-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, ein bisschen C sollte man schon lernen, wenn man es benutzen
will …

Nein, da wird nichts „integriert“, sondern das sind Ganzzahlen
(englisch: integer numbers).  Da das Prozentzeichen im printf ein
Format für die Ausgabe beschreibt, muss man es doppelt schreiben,
wenn man wirklich ein Prozentzeichen ausgeben will.  Alle nicht zu
einem Format gehörenden Zeichen werden 1:1 durchgereicht, so also
auch das C.

Diese umständliche Schreiberei dient wohl nur dazu, Gleitkommazahlen
zu vermeiden, die man ansonsten hier eigentlich benutzt hätte:
1
printf("%.1f %%, %.1f C\n", humidity, temperature);

von Forist (Gast)


Lesenswert?

Doggy_Dog schrieb:
> Ich habe ein Codebeispiel zum DHT22 auf der Seite www.pgollor.de
> gefunden und habe zu einem Teil eine Frage.

Was genau hat das jetzt mit Analoge Elektronik und Schaltungstechnik zu 
tun?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Forist schrieb:
> Was genau hat das jetzt mit Analoge Elektronik und Schaltungstechnik zu
> tun?

Sorry, ich hab' mich beim Verschieben vertan.  Das war unter
"Projekte & Code".

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.