【发布时间】:2016-03-10 07:21:02
【问题描述】:
根据我正在阅读的书,rand() 在 C++ 中需要 #include <cstdlib>
但是,我能够在 Visual Studio 2015 中编译以下使用 rand() 而没有 #include <cstdlib> 和 using namespace std; 的代码。
为什么这两个不需要编译?我应该包含 cstdlib 吗?
C++ 代码:
#include <iostream>
int main()
{
std::cout << rand() << std::endl;
}
【问题讨论】:
-
您可以使用
/showIncludes选项(在“C/C++ | 高级| 显示包含”下的iDE 项目属性中)进行编译,以查看stdlib是如何被包含的。 -
@MichaelBurr 我现在看到,Visual Studio 中的输出显示 iostream 包含 cstdlib。有没有办法知道哪些文件被直接包含,哪些被间接包含?我只是好奇
-
使用
/showIncludes选项的输出缩进级别指示哪个标头包含哪个其他标头。例如,在 VS 2015 更新 1 中,<iostream>仅直接包含<istream>- 拉入的所有其他标头都间接包含在istream或层次结构更深的标头中。
标签: c++ visual-studio visual-c++