Пожалуйста, рассмотрите следующую программу:
#include <stdio.h>
#include <time.h>
#define N 10000
int main ()
{
time_t begin1,end1;
float diff1;
int begin2, end2, diff2;
int i;
begin1 = time (NULL);
begin2 = time (NULL);
//consuming time
for(i=0;i<N;i++){
printf("%.2f%%\n",(i/(float)N)*100);
}
end1 = time (NULL);
end2 = time (NULL);
diff1 = difftime(end1, begin1);
diff2 = end2-begin2;
printf("%f\t%d\n",diff1, diff2);
return 0;
}
Мы видим, что программа работает отлично.Он рассчитывает разницу во времени двумя способами.И оба дают одинаковый ответ.Мне интересно, почему возможно неявное преобразование результата вызова time(NULL)
в целочисленную переменную таким образом.