[C] Bezeichner wurde nicht gefunden

number_nine

Grünschnabel
Hallo,

ich benutze die Microsoft Visual C++ 2005 Express Editon und habe bei einer Funktion, die ich selbst nicht geschrieben habe, jetzt aber in ein Projekt einbinden wollte folgendes Problem: erstmal der Quelltext

Code:
#include <math.h>
#include "stdafx.h"

double gasdev(long *idum)
{
	double ran2(long *idum);
	static int iset=0;
	static double gset;
	double fac,rsq,v1,v2;

	if (*idum < 0) iset=0;
	if  (iset == 0) 
	{
		do 
		{
			v1=2.0*ran2(idum)-1.0;
			v2=2.0*ran2(idum)-1.0;
			rsq=v1*v1+v2*v2;
		} while (rsq >= 1.0 || rsq == 0.0);
		
		fac=sqrt(-2.0*log(rsq)/rsq);
		gset=v1*fac;
		iset=1;
		return v2*fac;
	} 
	else 
	{
		iset=0;
		return gset;
	}
}

Beim Kompilieren bringt er dann die Fehlermeldungen:
error C3861: "sqrt": Bezeichner wurde nicht gefunden.
error C3861: "log": Bezeichner wurde nicht gefunden.
und das obwohl ich ja die math.h einbinde.

Ich weiß mir keinen Rat mehr, vielleicht kann mir ja jemand von euch weiter helfen. Danke schonmal

Jeannine
 
Hi.

In C++ sollten die Header der C Standard-Bibliothek ohne Endung aber mit dem Präfix "c" eingebunden werden.

Also, probier mal
C++:
#include <cmath>
Gruß
 
Hallo Jeannine,

die Zeile #include "stdafx.h" sollte grundsätzlich immer an erster Stelle stehen. Das heißt, du solltest bei dir mal die Reihenfolge der Includes tauschen.

Viele Grüße
MCoder
 
Zurück