1 | if(t_wt_austritt > t_ladepumpe_ein) tof_ladepumpe.IN = 1; |
2 | else tof_ladepumpe.IN = 0; |
Kann man das auch mit einem schönen Einzeiler machen? tof_ladepumpe.IN = (Abfrage, Wert Ja, Wert Nein);
|
Forum: Mikrocontroller und Digitale Elektronik C: If-Frage mit boolschen Output
Kann man das auch mit einem schönen Einzeiler machen? tof_ladepumpe.IN = (Abfrage, Wert Ja, Wert Nein); Helmut Andere Farbe schrieb: > if(t_wt_austritt > t_ladepumpe_ein) tof_ladepumpe.IN = 1; > else tof_ladepumpe.IN = 0; > Kann man das auch mit einem schönen Einzeiler machen? > > tof_ladepumpe.IN = (Abfrage, Wert Ja, Wert Nein); Ja, <var> = (<bedingung>) ? (<expr-true>) : (<expr-false>); Siehe: https://de.wikibooks.org/wiki/C-Programmierung:_Ausdr%C3%BCcke_und_Operatoren#Bedingung_?: Helmut Andere Farbe schrieb: > if(t_wt_austritt > t_ladepumpe_ein) tof_ladepumpe.IN = 1; > else tof_ladepumpe.IN = 0; > Kann man das auch mit einem schönen Einzeiler machen? tof_ladepumpe.IN = (t_wt_austritt > t_ladepumpe_ein); Hi Joe F. schrieb: > tof_ladepumpe.IN = (t_wt_austritt > t_ladepumpe_ein); Da wird er nicht wissen, warum das funktioniert. Er wird nicht wissen wie ein True oder False binär kodiert wird. Karl M. schrieb: > Da wird er nicht wissen, warum das funktioniert. Warum denkt er das? Jener wird schon verstehen. Helmut Andere Farbe schrieb: > if(t_wt_austritt > t_ladepumpe_ein) tof_ladepumpe.IN = 1; > else tof_ladepumpe.IN = 0; Ja :
GEKU schrieb: > Helmut Andere Farbe schrieb: >> if(t_wt_austritt > t_ladepumpe_ein) tof_ladepumpe.IN = 1; >> else tof_ladepumpe.IN = 0; > > Ja : > tof_ladepumpe.IN = (t_wt_Austritt > t_ladungspumpe_ein); Nein, C ist Case Sensitive, also auf die Schreibweise achten.
Warum tut man sich in C so schwer, die richtigen Datentypen zu nutzen. Auch wenn sie nur pseudos sind. Da nach Boolean Gefragt wurde: tof_ladepumpe.IN = t_wt_austritt > t_ladepumpe_ein ? TRUE : FALSE; MaWin schrieb: > nur pseudos Genau. Warum sollte ich
schreiben, wenn
ident aber kuerzer ist. leo MaWin schrieb: > Da nach Boolean Gefragt wurde: > tof_ladepumpe.IN = t_wt_austritt > t_ladepumpe_ein ? TRUE : FALSE; Mal wieder ein Beitrag des Psychopathen, der seinen Namen nicht kennt, und stattdessen MaWin ins Namensfeld schreibt. Der Vergleichsoperator gibt bereits ein _Bool zurück. Deshalb ist der If-Operator redundant. tof_ladepumpe.IN = t_wt_austritt > t_ladepumpe_ein; MaWin schrieb: > Der Vergleichsoperator gibt bereits ein _Bool zurück. Nein, sondern ein int mit dem Wert 0 oder 1. Das ändert aber nichts daran, dass das if-Konstrukt weggelassen werden kann. 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.
|
|