根据我正在阅读的书,rand()
需要C++中的#include <cstdlib>
但是,我能够在Visual Studio 2015中编译以下使用rand()
而不使用#include <cstdlib>
或using namespace std;
的代码。
为什么不需要编译这两个文件?我应该包括cstdlib吗?
C++代码:
#include <iostream>
int main()
{
std::cout << rand() << std::endl;
}
最佳答案
有两个问题在起作用:
iostream
可以直接或间接包括cstdlib
。 cstdlib
)将C标准库名称带入全局 namespace ,即,在std
namespace (例如rand
)之外。从C++ 11开始,这是正式允许的,并且以前是可以宽容的。 关于c++ - 为什么rand()在不包含cstdlib或不使用命名空间std的情况下进行编译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35910043/