if abfrage

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Alchimedes
Beiträge: 5
Registriert: Mi Jul 20, 2011 7:56 pm

if abfrage

Beitrag von Alchimedes » Mi Jul 27, 2011 8:54 pm

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 !

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: if abfrage

Beitrag von Dirty Oerti » Mi Jul 27, 2011 9:19 pm

Code: Alles auswählen

if ( decision )
Das bedeutet implizit das Gleiche wie

Code: Alles auswählen

if ( decision != 0 )
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"
}
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: if abfrage

Beitrag von Xin » Mi Jul 27, 2011 9:58 pm

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
}
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: if abfrage

Beitrag von Dirty Oerti » Mi Jul 27, 2011 10:20 pm

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...
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Alchimedes
Beiträge: 5
Registriert: Mi Jul 20, 2011 7:56 pm

Re: if abfrage

Beitrag von Alchimedes » So Jul 31, 2011 7:49 pm

Ok, danke fuer die netten Beispiele!

Gruss

Antworten