c++ - 精度损失 - 使用 srand 时发出警告

标签 c++ c srand

我正在尝试将 srand 与时间一起用于随机值。如果我看 srand 函数需要 unsigned int - 但如果我们用 time 初始化它,它似乎有 long long 值 - 所以编译器一直提示精度丢失警告。有更好的做事方式吗?

// srand definition
void srand (unsigned int seed);
// using srand with time to seed random value
srand(time(NULL));

警告 712:(信息 -- 精度损失(arg. 1)(long long 到 unsigned int))

最佳答案

如果您使用的是 C++,请查看 <random> .它有更好的 PRNG。

如果您限于 rand , 在这种情况下,您可以忽略警告,或者更好的是,通过显式转换 (unsigned)time(NULL) 告诉编译器您不关心.

关于c++ - 精度损失 - 使用 srand 时发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31712750/

相关文章:

c++ - 元素已从 QList 中删除,但现有对象的静态计数器不会减少

c++ - Boost.Bind'ing 成员函数并将其发布到 io_service

无法解决 : 'Redefinition of NULL macro'

c++ - 使用 Mersenne twister 的一维噪声在不同的设备上给出不同的结果

c++ - 为什么我的 Winsock 应用程序有时在 listen() 等待,有时在 accept() 等待?

c++ - PostgreSQL C API (libpq) 是否允许您使用结果而不是存储结果?

c - C 中的 goto 语句和替代项

python - 使用 ctypes 从无效函数(段错误)x64 获取指针

c++ - rand() 函数 C++