Я пытался измерить время, прошедшее в программе на C, используя функцию часов, но всякий раз, когда я пытаюсь напечатать любые значения часов, я возвращаюсь 0. Например :Получение времени, прошедшего в программе на C с использованием часов()
clock_t time1, time2;
time1 = clock();
printf("Time 1 is %d.\n", (int)time1);
sleep(2);
time2 = clock();
printf("Time 2 is %d.\n", (int)time2);
в обоих случаях time1 и time2 распечатать как 0. у меня есть ощущение, что это потому, что я использую неправильный тип в Printf, но каждый тип я видел, кажется, не работает для меня. Я использовал% Lf,% ld,% f. Может ли кто-нибудь еще выявить проблему здесь?
EDIT: Я попытался большинство из упомянутых типов в этой теме: What’s the correct way to use printf to print a clock_t? Я даже пытался uintmax_t, но без возможности печати p1 и p2, я не знаю, как проверить, если это проблема типа или если часы не возвращает адекватное значение.
Да, вы правы в своем мышлении. На это уже был дан ответ, я верю: http://stackoverflow.com/questions/1083142/what-s-the-correct-way-to-use-printf-to-print-a-clock-t – EkcenierK
Я получаю вывод при использовании '% d ... (int)', '% llu ... (unsigned long long)' или '% Lf ... (long double)'. Оформить заказ на этот вопрос http://stackoverflow.com/questions/9871071/why-c-clock-returns-0 – evading
Это может быть конкретная ОС. И 'clock' в лучшем случае возвращает микросекунды процессора, поэтому вам нужно вычисление, которое ест какой-то процессор. В Linux см. [Время (7)] (http://man7.org/linux/man-pages/man7/time.7.html) –