随着iPhone 5S的更新,我希望我的应用能够支持新的64位处理器。64位随机种子
但是,如果将较大的数据类型转换为较小的数据类型(如将long转换为int),则使用64位可能会导致截断。大多数情况下,只需使用更大的数据类型就可以很容易地解决这个问题,但对于有时使用“time(NULL)”函数播种的随机数生成器,我无法做到这一点。
当前的代码很简单:
srandom(time(NULL));
但是XCode中5与64位其导致以下错误:Implicit conversion loses integer precision: 'time_t' (aka 'long') to 'unsigned int'
。这是因为“time(NULL)”返回一个长整数,而“srandom”需要一个unsigned int。因此,有两种选择:
- 转换为一个unsigned int
- 替换“时间(NULL)”与其他功能,做同样的工作,但返回一个unsigned int长整型。
你会推荐哪一个,我应该用什么函数来做到这一点?
注:我使用random()而不是arc4random(),因为我还需要能够播种随机数生成器以获得可重复的结果。
这就是我需要的,谢谢! – gabriellanata