srandom (time (NULL)), выдающий предупреждение - указатель на целое число без приведения - PullRequest
1 голос
/ 02 августа 2011

В iPhone (Xcode 4), используя функцию,

srandom(time(NULL));

и srand, и srandom выдает это предупреждение.Но при работе работает нормально.Почему я получаю предупреждение в одном из файлов моего класса?Я использовал это в других файлах, но без предупреждения.

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

Тем не менее, использование arc4random() может решить эту проблему.Но в большинстве случаев srand() используется таким образом, и никто не жалуется.Вот почему я в замешательстве.

1 Ответ

0 голосов
/ 02 августа 2011

Потому что srand ожидает целое число, а time () возвращает указатель (судя по вашей конкретной ошибке).Приведение явно к int заставит его исчезнуть.Или, возможно, чтение указателя для получения фактического значения времени может быть тем, что вы ищете вместо этого.Здесь нет 100% уверенности в возвращаемом значении времени, но я бы дважды проверил, чтобы убедиться, что он действительно возвращает значение tics, а не указатель на объект time_t, который в основном останется неизменным во времени.к тому, что я только что прочитал, он должен вернуть значение time_t, которое при преобразовании в целое число представляет собой количество секунд, прошедших с 1972 года.Так что обычно не указатель, но в вашем случае это может быть.В любом случае, добавьте разыменование и приведение или просто приведение, если вы можете заставить его возвращать time_t напрямую.

...