Вопрос:

Работа с часами в C

c

547 просмотра

1 ответ

0 Репутация автора

На этот вопрос уже есть ответ здесь:

Я работаю над небольшим школьным проектом по перекодированию SpaceInvadersигры, не используя ncurses, но только базовые библиотеки, и я хочу использовать время для печати моего экранного буфера каждый раз, поэтому мне нужно знать, когда печатать именно так пользователь не будет чувствовать отставание экрана.

Я начал использовать Clock_tструктуру в качестве теста, как:

clock_t stime = clock();
sleep(3);
clock_t etime = clock();
unsigned long millis = ((etime - stime) * 1000) / CLOCKS_PER_SEC;
printf("%lu\n",millis);

но на выходе все время 0, я хочу знать, почему и как я могу это исправить, чтобы я мог видеть миллисекунды или наносекунды

Автор: user7184048 Источник Размещён: 06.04.2017 02:33

Ответы (1)


0 плюса

2737 Репутация автора

Добавьте несколько операторов печати в свой код:

clock_t stime = clock();
sleep(3);
clock_t etime = clock();
// print etime and stime and (etime - stime) * 1000 and CLOCKS_PER_SEC
unsigned long millis = ((etime - stime) * 1000) / CLOCKS_PER_SEC;
printf("%lu\n",millis);

Вы увидите, что числитель меньше знаменателя в вашем выражении, поэтому, поскольку вы используете целочисленную математику, вы урежете результат, и он будет равен нулю.

Автор: nicomp Размещён: 06.04.2017 02:53
Вопросы из категории :
32x32