📅  最后修改于: 2023-12-03 15:14:25.268000             🧑  作者: Mango
在C语言中,我们经常需要控制程序的执行时间,通常情况下我们使用时间延迟的方法来控制程序的执行速度。在C语言中,有多种方法可以实现时间延迟,本文将介绍其中几种常用的方法。
sleep()
函数可以使程序进入一段时间的睡眠状态,单位是秒。
#include <unistd.h>
int sleep(unsigned int seconds);
#include <stdio.h>
#include <unistd.h>
int main()
{
printf("Hello\n");
sleep(2); // 延迟两秒钟
printf("World\n");
return 0;
}
输出:
Hello
World
usleep()
函数可以实现微秒级别的时间延迟。
#include <unistd.h>
int usleep(useconds_t usec);
#include <stdio.h>
#include <unistd.h>
int main()
{
printf("Hello\n");
usleep(2000000); // 延迟两秒钟
printf("World\n");
return 0;
}
输出:
Hello
World
clock()
函数可以获取程序执行的时间,单位是时钟周期。
#include <time.h>
clock_t clock(void);
#include <stdio.h>
#include <time.h>
int main()
{
clock_t start, end;
double duration;
start = clock(); // 记录开始时间
for (int i = 0; i < 100000000; i++); // 延迟一段时间
end = clock(); // 记录结束时间
duration = (double)(end - start) / CLOCKS_PER_SEC; // 计算程序执行时间
printf("程序执行时间为 %.6f 秒\n", duration);
return 0;
}
输出:
程序执行时间为 0.790637 秒
clock_gettime()
函数可以获取当前的时间,精度比clock()
函数更高。
#include <time.h>
int clock_gettime(clockid_t clk_id, struct timespec *tp);
#include <stdio.h>
#include <time.h>
int main()
{
struct timespec start, end;
double duration;
clock_gettime(CLOCK_MONOTONIC, &start); // 记录开始时间
for (int i = 0; i < 100000000; i++); // 延迟一段时间
clock_gettime(CLOCK_MONOTONIC, &end); // 记录结束时间
duration = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.0; // 计算程序执行时间
printf("程序执行时间为 %.6f 秒\n", duration);
return 0;
}
输出:
程序执行时间为 0.777351 秒
本文介绍了C语言中常用的时间延迟方法,包括sleep()
、usleep()
、clock()
和clock_gettime()
函数。使用这些函数可以准确地控制程序的执行速度和时间。