Во-первых, вам не нужно для предоставления аргумента time_t*
для функции time
. Если вы просто собираетесь использовать возвращаемое значение, нормально (и очень часто) вызывать time(NULL)
. Таким образом, вы можете исключить переменные start
и current
, если они не используются иным образом.
Во-вторых, возвращаемое значение из time
равно time_t
, а не int
, поэтому timer
должно иметь тип time_t
.
Наконец, посмотрите на ваш тест
if(time(¤t) == (timer+40))
и подумайте, что произойдет, если время прошло 40 секунд с момента старта, когда вы выполняли что-то еще выше теста, а теперь, скажем, 43 секунды с момента старта. Ты все еще не хочешь сломаться? Так ==
подходящий тест?