Seite 1 von 1
if abfrage
Verfasst: Mi Jul 27, 2011 8:54 pm
von Alchimedes
Hallo !
Ich hab folgende Frage:
wieso sagt der Ausdruck aus dem C-Tutorial das if ( decision) ungleich null ist?
muesste der Ausdruck nicht heissen if ( decision !=0) ??
Danke !
Re: if abfrage
Verfasst: Mi Jul 27, 2011 9:19 pm
von Dirty Oerti
Das bedeutet implizit das Gleiche wie
Von daher müsste es, wenn man es korrekt ausschreiben will, wirklich "!= 0" heißen, allerdings ist die obige Abkürzung üblich, wenn es sich um Werte handelt, die z.B. als Fehlerabfrage dienen. Dann bedeutet ein Wert von 0 "kein Fehler", jeder andere Wert bezeichnet einen Fehler.
Code: Alles auswählen
int error = tu_etwas();
if (error)
{
// hilfe ..
}
else
{
// alles ok, error hat den Wert 0, sprich "kein Fehler"
}
Re: if abfrage
Verfasst: Mi Jul 27, 2011 9:58 pm
von Xin
Dirty Oerti hat geschrieben:Von daher müsste es, wenn man es korrekt ausschreiben will, wirklich "!= 0" heißen, allerdings ist die obige Abkürzung üblich, wenn es sich um Werte handelt, die z.B. als Fehlerabfrage dienen. Dann bedeutet ein Wert von 0 "kein Fehler", jeder andere Wert bezeichnet einen Fehler.
Der Hintergedanke ist eigentlich ein anderer, es geht eigentlich genau um das Gegenteil, nämlich wenn im Fehlerfall der Wert 0 zurückgibt.
Der Fehlerfall ist dann, dass ein Objekt nicht existiert. Darum nennt man das auch Existenzabfrage:
Code: Alles auswählen
char * memory = malloc( 1024 );
if( memory )
{
// Speicher ist vorhanden
}
Re: if abfrage
Verfasst: Mi Jul 27, 2011 10:20 pm
von Dirty Oerti
Arg, an die Art der Verwendung hatte ich jetzt gar nicht gedacht

Das ist auch das ärgerliche, wenn man mehrere Bibliotheken verwendet, die da unterschiedliche Konventionen verfolgen...
Re: if abfrage
Verfasst: So Jul 31, 2011 7:49 pm
von Alchimedes
Ok, danke fuer die netten Beispiele!
Gruss