linuxC语言环境下写一个可计时函数(计时单位为毫秒可传参)和结束计时函数
时间: 2024-09-11 22:18:53 浏览: 49
在Linux C语言环境中,你可以使用`gettimeofday`函数来实现毫秒级的计时。`gettimeofday`函数可以获取当前的时间,返回的时间值包含秒和微秒。为了将这个时间转换为毫秒,我们需要将微秒部分除以1000并加到秒数上。以下是一个简单的示例,展示如何编写一个开始计时函数和一个结束计时函数。
首先,定义一个结构体来保存开始时间和结束时间:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
typedef struct {
long long start_time;
long long end_time;
} Timer;
void startTimer(Timer *timer) {
struct timeval tv;
gettimeofday(&tv, NULL);
timer->start_time = (long long)tv.tv_sec * 1000 + tv.tv_usec / 1000;
}
void stopTimer(Timer *timer) {
struct timeval tv;
gettimeofday(&tv, NULL);
timer->end_time = (long long)tv.tv_sec * 1000 + tv.tv_usec / 1000;
}
long long getElapsedTime(Timer *timer) {
return timer->end_time - timer->start_time;
}
```
在这个例子中,`startTimer`函数用于记录开始时间,`stopTimer`函数用于记录结束时间,而`getElapsedTime`函数则用于计算经过的时间(毫秒)。
使用这个计时器的示例代码如下:
```c
int main() {
Timer timer;
startTimer(&timer);
// 执行一些操作...
stopTimer(&timer);
printf("Elapsed time in milliseconds: %lld ms\n", getElapsedTime(&timer));
return 0;
}
```
这里,在`startTimer`和`stopTimer`之间执行了某些操作(这里的操作用注释表示),然后通过调用`getElapsedTime`来获取经过的时间。
阅读全文