1

在 iPhone (Xcode 4) 中,使用该函数,

srandom(time(NULL));

两者srandsrandom给出了这个警告。但是在运行时工作正常。为什么我在我的一个类文件中收到警告?我在其他文件中使用过它,但没有警告。

Warning: passing argument 1 of 'srand' makes integer from pointer 
without a cast

但是,使用arc4random()可以解决这个问题。但在大多数例子srand()中都是这样使用的,没有人抱怨。这就是为什么我很困惑。

4

1 回答 1

0

因为 srand 需要一个整数,而 time() 正在返回一个指针(从您的特定错误的外观来看)。显式转换为 int 将使其消失。或者也许读取指针以获取实际时间值可能是您正在寻找的。这里不是 100% 确定时间的返回值,但我会仔细检查以确保它确实返回 tics 值而不是指向 time_t 对象的指针,该对象将随着时间的推移基本保持不变。

根据我刚刚读到的内容,它应该返回一个 time_t 值,当转换为 int 时,它是自 1972 年以来经过的秒数。所以通常不是指针,但在你的情况下它可能是。无论哪种方式,添加一个取消引用和一个强制转换,或者如果你可以让它直接返回 time_t,则只添加一个强制转换。

于 2011-08-02T08:21:06.717 回答