Pi-Konstante verwenden
-
Möchte in meinem Programm die Konstante M_PI verwenden, er sagt mir aber immer hartnäckig
Error C2065: 'M_PI': nichtdeklarierter Bezeichner
obwohl ich oben #include <math.h> gemacht habe. In der MSDN steht noch
To use these math constants, you have to define _USE_MATH_DEFINES in addition to #including math.h.
Wie funktioniert das? Mit
#define _USE_MATH_DEFINES
hatte ich keinen Erfolg.
-
den define musst du natürlich vor den include schreiben, das ist dir hoffentlich klar?
-
dEUs schrieb:
den define musst du natürlich vor den include schreiben, das ist dir hoffentlich klar?
Nein, ist es mir nicht, aber danke. Wofür ist das #define genau?
PS: Funktioniert aber auch nicht...!?
#define _USE_MATH_DEFINES #include <math.h>
-
Hab heraus bekommen, dass es laut MSDN
#define _USE_MATH_DEFINES #include <cmath>
heißen muss. Geht aber auch nicht.
Nur ein
#ifndef M_PI #define M_PI 3.14159265358979323846f #endif
brachte den Erfolg!?
-
Welcher Compiler?
VC6 kennt das z.B. noch nicht.
-
Visual Studio .NET 2003 Version 7.1.3088
-
vermutlich hast Du dann die math.h in anderem Zusammenhang in Deine Datei includiert, was zur Folge hat, dass an der Stelle die Du vermutest math.h eben nicht nocheinmal includiert wird. Dieses ausschließen wird durch entsprechende #define und #ifdef in fast jeder Headerdatei, auf jeden Fall in allen Standarddateien so gehandhabt.
Abhilfe: schieb Dein
#define _USE_MATH_DEFINES
nach ganz oben, dann sollte es mich wirklich wundern, wenn es nicht klappt.
Sonst wäre angesagt, mal Deine INCLUDE Pfade zu kontrollieren, bzw. zu untersuchen, was der Precompiler aus deinem Source macht.
Jay
-
Bei mir hat es jetzt funktioniert, weil ich es in dieser Reihenfolge geschrieben habe:
#define _USE_MATH_DEFINES #include <math.h>
[java]