Iphone srandom(time(NULL))发出警告-指向不带强制转换的整数的指针

Iphone srandom(time(NULL))发出警告-指向不带强制转换的整数的指针,iphone,c,xcode4,srand,Iphone,C,Xcode4,Srand,在iPhone Xcode 4中,使用函数 srandom(time(NULL)); srand和srandom都发出了这一警告。但在运行时,它工作得很好。 为什么我在我的一个类文件中得到警告?我已经在其他文件中使用过,但没有警告 Warning: passing argument 1 of 'srand' makes integer from pointer without a cast 但是,使用arc4random可以解决这个问题。但在大多数示例中,srand是以这种方式使用的,没有

在iPhone Xcode 4中,使用函数

srandom(time(NULL));
srand和srandom都发出了这一警告。但在运行时,它工作得很好。 为什么我在我的一个类文件中得到警告?我已经在其他文件中使用过,但没有警告

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

但是,使用arc4random可以解决这个问题。但在大多数示例中,srand是以这种方式使用的,没有人抱怨。这就是我感到困惑的原因。

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


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

你是对的。我还注意到时间的回报值。它返回一个时间结构。但是示例中的所有人都以这种方式使用srand,没有人抱怨。在纯c中,time返回一个int时间戳。time\t不是一个结构,而是一个int。为什么要报告关于srand的错误?你的密码是srandom,我说,两者都有相同的警告。