我一直以为 cstdlib 中的随机函数只有 rand 和 srand,但是下面的工作(在 Ubuntu 10.10 上用 g++ 编译)?
我实际上在从 Windows 迁移到 Ubuntu 时发现了这一点,我的编译失败了,因为它模棱两可地重载(我已经声明了我自己的“random()”函数)。
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
srandom(50);
cout << random();
return 0;
};
以下在 Ubuntu 上也可以正确编译,在检查 stdlib.h 后,random() 和 srandom() 等未在 std 命名空间中声明。这让它彻底痛彻心扉……
#include <iostream>
#include <cstdlib>
int main() {
std::cout << random();
return 0;
};