为什么M_PI在一个文件中未定义,但在main.cpp中定义?

时间:2016-06-25 21:38:05

标签: c++ header-files cmath

我有一个Code :: Blocks项目,其中包含一些文件,包括main.cppLine_segment.cpp及其相应的标题Line_segment.h。头文件,以及预处理程序指令中的主文件#include <cmath>库。 <cmath>中定义的对象之一是常量M_PI,它只是数字pi。

使用M_PImain()中工作得很好,我能够编写像std::cout << M_PI*2. << '\n'这样的简单内容,并且我会得到6.28的输出...正如所料。但是,当我尝试在Line_segment.cpp文件中执行相同的操作并进行编译时,我收到编译错误,指出'M_PI' was not declared in this scope。如果我将<cmath>直接包含在.cpp文件中,并且尝试使用"math.h",则会发生同样的情况。另一个观察是,当我输入名称时,M_PIM_PI_2M_PI_4都显示在代码建议弹出窗口中,这意味着Code :: Blocks正在识别范围中的名称该文件。

为什么会发生这种情况有什么原因吗?非常感谢任何帮助。

0 个答案:

没有答案