我正在使用Visual Studio 2010。我已经阅读过在C++中最好使用<cmath>
而不是<math.h>
。
但是,在我正在尝试编写的程序中(Win32控制台应用程序,空项目),如果我写:
#define _USE_MATH_DEFINES
#include <math.h>
它可以编译通过,但如果我写
#define _USE_MATH_DEFINES
#include <cmath>
它失败并显示错误信息:
error C2065: 'M_PI' : undeclared identifier
这是正常的吗?如果我使用cmath或math.h会有影响吗?如果有,如何才能让它与cmath一起工作?
更新:如果在GUI中定义了_USE_MATH_DEFINES,它就可以工作。有任何线索为什么会发生这种情况吗?