ceil在visual c ++ 2010 </cmath>中不包括<cmath>

时间:2011-11-27 19:21:34

标签: c++ visual-studio-2010 visual-c++-2010

我刚刚在Visual Studio 2010中编写了一个简单的C ++程序,并使用了ceil函数。但我忘记添加<cmath>,但仅包含<iostream>。令人惊讶的是我的代码编译成功并运行没有任何错误。我阅读了一本C ++书籍,它明确表示要使用ceil函数,您必须包含<cmath><math.h>。为什么会这样?有人能解释一下吗?谢谢!

2 个答案:

答案 0 :(得分:1)

标题间接包含在其他(间接)包含的标题中。

要找出哪一个,请启用&#39;保留预处理的来源&#39; (/P)从项目选项中检查生成的(* .i)文件

更新刚刚发现VS2010已重命名相关选项:

enter image description here

答案 1 :(得分:1)

从技术上讲,允许实现自动包含系统头中的任何头。但这是实现定义。

在某些情况下,<cmath>已经包含在内,在其他情况下,它不是 - 同样适用于所有其他标准标题。

此问题出现在这个问题上:https://stackoverflow.com/questions/7632926/is-this-a-c-program-or-c-program-how-to-decide

除此之外,它可能被其他包括间接包括在内。