неявное объявление функции 'time' [-Wimplicit-function-declaration]|

Всякий раз, когда я пытаюсь использовать функцию srand, я получаю это предупреждение.

"implicit declaration of function 'time' [-Wimplicit-function-declaration]|" 

и появляется отчет об ошибке Windows при запуске скомпилированного файла,
я новичок в программировании на С, я нашел это в учебнике, но это не так. т работать на меня.

  srand (time());  
  int x= (rand()%10) +1;  
  int y= (rand()%10) +1;  
  printf("\nx=%d,y=%d", x,y); 

Что мне нужно, чтобы исправить это?


person Chathura Dodamgoda    schedule 17.03.2013    source источник


Ответы (2)


Вам нужно убедиться, что вы #include используете правильные заголовки, в данном случае:

#include <stdlib.h>  // rand(), srand()
#include <time.h>    // time()

Если вы сомневаетесь, проверьте справочные страницы:

$ человек ранд

$ человеко-час

Еще одна проблема: time() требует аргумента, который может быть NULL, поэтому ваш вызов srand() должен быть:

srand(time(NULL));
person Paul R    schedule 17.03.2013
comment
спасибо за ответ .. я включил stdlib.h, но после включения time.h это дает мне еще одну ошибку: слишком мало аргументов для функции «время» - person Chathura Dodamgoda; 17.03.2013
comment
код, который я включил, отлично работает на онлайн-компиляторах, таких как кодовая панель. Я использую кодовые блоки на своем компьютере. - person Chathura Dodamgoda; 17.03.2013
comment
man rand может работать не так, как ожидалось. Есть и другие утилиты с именем rand - person Stegosaurus; 18.12.2018

Обратите внимание, что функция time() использует текущее время (выраженное в секундах с 1970 года) как в возвращаемом значении, так и в аргументе адреса.

person Acsor    schedule 17.03.2013