Verständnisfrage: Return im Block?
-
Ich soll ein altes Projekt nach Java konvertieren. Könntet Ihr mir kurz erklären was das folgende für eine Konstruktion ist? Sieht nach einer Funktion aus... aber ein bißchen komisch definiert? Mich verwirren besonders die beiden Zeiger am Anfang.
double test_(a, b) double *a, *b; { int x; return x; }
Von diesen Dingern stehen dutzende in einer .c Datei.
Das Original sieht so aus:
-----------double vbpt_(abc, eier) double *abc, *eier; { /* System generated locals */ double ret_val; /* Local variables */ static int ireg; static double p, t; extern double vpt_(); extern /* Subroutine */ void regsopt_(); p = *abc * .1; t = *eier + 273.15; regsopt_(&p, &t, &ireg); if (ireg != 0) { ret_val = vpt_(&p, &t, &ireg); } else { ret_val = 0.; } return ret_val; } /* vbpt_ */
Ich bin für jeden Hinweis dankbar. Habe auch neben mir einen dicken C/C++ Wälzer liegen. Ein ->gutes<- Stichwort würde auf jeden Fall reichen.
Vielen Dank
Peter
-
das ist altes K&R C und in C++ nicht mehr gültig und bedeutet
double test_(double *a,double *b)
-
Hm....
Volker schrieb,glaube ich, mal was (als es um eine Diskusion um foo(void) ging)
das früher die Parametertypen unten drunter angegeben wurden.double test_(a, b) double *a, *b; { int x; return x; }
Dürfte also
double test_(double * a,double * b) { int x; return x; }
sein.
(Hmm... werd nich das gefühl los wieder nur müll geschrieben zu haben O
)
-
Hallo Knuddlbaer und kingruedi,
vielen Dank für Eure Hilfe. Es scheint wirklich eine veraltete Syntax zu sein. Der ursprüngliche Autor muß wohl schon lange dabei sein;-)
Vielen Grüße
Peter