Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

11.07.2006, 15:26

Fehlerabfrage

öhm .. nur so als frage

ich hab da ne funktion, und die will ich überprüfen ob die hinhaut...
das kann ich dann ja so überprüfen nicht?

C-/C++-Quelltext

1
2
3
4
if (!MeineFunktion (Parameter)) // Rufzeichen

{
       MessageBox (NULL, "BLAH", "BLAH", MB_OK);
}


d.h. dann soviel wie:
"wenn die funktion nicht klappt, dann geh in den if-block und mach das"
oder liege ich da falsch?

und wenns dann heißt:

C-/C++-Quelltext

1
2
3
4
if (MeineFunktion (Parameter)) // kein Rufzeichen

{
       MessageBox (NULL, "BLAH", "BLAH", MB_OK);
}


dann soll er in den if-Block springen wenns klappt.. nicht?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Phili

unregistriert

2

11.07.2006, 15:32

Ja, das sollte Funktionieren, oder?
die Funktionen müssen halt nen Rückgabewert von bool oder int haben, und dann NULL übergeben, wenn alles geklappt hat...

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

11.07.2006, 15:35

joa natürlich :)

ok .. wollte nur wissen ob ich richtig liege ^^

d.h. wenn ne funktion jetzt '0' liefert, in dem fall wenn sie funktioniert hat, dann muss ich schreiben

C-/C++-Quelltext

1
2
3
4
5
if (Funktion (Parameter));
{
     // hier geht er nur rein wenn die funktion fehlschlägt (also 1 zurückliefert)

     MsgBox("hallo, fehler!");
}



richtig?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

4

11.07.2006, 16:13

Probiers doch einfach aus!

C-/C++-Quelltext

1
2
3
4
5
6
7
8
int foo(void);

// ...


if (foo())
    ::MessageBox(NULL, NULL, NULL, MB_OK | MB_ICONINFORMATION);
else
    ::MessageBox(NULL, NULL, NULL, MB_OK | ICONERROR);
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

11.07.2006, 17:49

Rückschlüsse darauf, ob eine Funktion erfolgreich ausgeführt wurde oder nicht, hängen ja ganz von der Semantik des Rückgabewerts u.ä. ab.
Bei einem boolschen Rückgabewert ist es (natürlich) häufig so, dass true Erfolg und false Fehler bedeuten. Oft gibt es aber auch vordefinierte "Error-Codes", die durch Integer-Zahlen identifiziert werden. In einem solchen Fall ist nicht selten "alles ok" mit 0 definiert (was dem logischen false entspricht).

rklaffehn

Treue Seele

Beiträge: 267

Wohnort: Braunschweig

  • Private Nachricht senden

6

11.07.2006, 18:15

Prominente Ausnahmen für "0 ist Erfolg" sind die str[n]cmp Funktionen, die bei Gleichheit der Strings eine Null liefern und sonst eine Zahl kleiner bzw. größer Null, wenn der erste String lexikografisch kleiner bzw. größer als der Zweite ist (oder umgekehrt... :p )

Aber mal ehrlich, das if-Konstrukt ist so grundlegend in jeder Sprache (wie auch while, for und case), dass man da doch nicht großartig drüber diskutieren muss, oder?

MfG,
Rainer
God is real... unless declared integer.
http://www.boincstats.com/signature/user_967277_banner.gif

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

11.07.2006, 18:48

ich frag das nur, weil mir vorkommt dass manche funktionen in D3D (ich kenn mich nicht so gut aus, also nicht lachen), 0 als rückgabewert für eine erfolgreiche druchführung der funktino zurückliefern
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Phili

unregistriert

8

11.07.2006, 18:51

@$nooc
Ja, das stimmt.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

9

11.07.2006, 18:54

oho .. nice :) dann bin ich doch nicht so doof ..

es kam mir nur so komisch vor:

if (Funktion())
{
MsgBox ("Funktion fehlgeschlagen");
}


für mich "wirkt" es logischer wenn man bei einer abfrage ein rufzeichen davor schreiben muss

if (!Funktion())
{
[...]
}

aber gut.. also hab ich richtig gelegen.. danke jungs :)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Phili

unregistriert

10

11.07.2006, 18:59

@$nooc

Musst halt denken: Wenn Fehler, dann
und nicht wenn funktioniert, dann

Werbeanzeige