srandom(time(NULL))给出警告 - 指向没有强制转换的整数的指针

时间:2011-08-02 08:16:57

标签: iphone c xcode4 srand

在iPhone(Xcode 4)中,使用该功能

srandom(time(NULL));

srandsrandom都发出此警告。但是当它运行正常时。 为什么我在我的一个类文件中收到警告?我在其他文件中使用过它,但没有警告。

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

但是,使用arc4random()可以解决此问题。但在大多数示例中,srand()以这种方式使用,没有人抱怨。这就是为什么我感到困惑。

1 个答案:

答案 0 :(得分:0)

因为srand期望一个整数而time()返回一个指针(来自你特定错误的外观)。明确地转换为int将使它消失。或者也许读取指针以获取实际时间值可能是您正在寻找的。这里不是100%确定时间的返回值,但我会仔细检查以确保它确实返回一个抽搐值而不是一个指向time_t对象的指针,该指针随着时间的推移将保持大致相同。

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