Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Mehrere return-values

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.03.2012, 00:51 Uhr
banshee



Hallo,

habe gerade folgende Return-Anweisung in einem OpenCV-Sample gesehen:

C++:
return fprintf( stderr, "Invalid board width\n" ), -1;


Anscheinend wird immer der hintere Wert, also -1, zurückgegeben. Welchen Sinn hat das ganze also?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.03.2012, 09:03 Uhr
ao

(Operator)


Das hier:

fprintf (....), 1

ist ein Ausdruck mit Komma-Operator. Der Komma-Operator hat folgende Funktion (grob gesprochen): Führe alle Einzelanweisungen von links nach rechts aus, verwirf alle Ergebnisse bis auf das letzte und gib dieses zurück.

Weitere Erklärungen gibts hier, und da steht auch, wo man es üblicherweise einsetzt: http://de.wikibooks.org/wiki/C-Programmierung:_Ausdrücke_und_Operatoren#Komma-Operator_.2C

Warum es hier gemacht wurde? Jemand wollte offensichtlich eine Fehlerausgabe und einen negativen Returnwert, und allein mit

return fprintf (....);

ist das nicht zu machen. Warum er diese Form gewählt hat und nicht sowas hier?

fprintf ( ... );
return -1;

Vielleicht Geschmackssache.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.03.2012, 14:50 Uhr
banshee



Genau das meinte ich. Im Vergleich zu deiner letztgenannten Variante finde ich das höchst verwirrend.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: