1、使用 clock() 计算时间
clock() 是 C 标准库中的一个函数,它返回程序运行的“时钟滴答数”,通常用于测量 CPU 执行时间。clock() 返回的是一个 clock_t 类型的值,可以通过它来计算程序运行的时间。
#include <stdio.h>
#include <time.h>
int main() {
    // 获取开始时间
    clock_t start_time = clock();
    
    // 模拟一个耗时的操作(例如循环计算)
    for (volatile int i = 0; i < 1000000000; i++) {
        // 空操作
    }
    
    // 获取结束时间
    clock_t end_time = clock();
    
    // 计算并输出程序运行的时间(以秒为单位)
    double elapsed_time = (double)(end_time - start_time) / CLOCKS_PER_SEC;
    printf("Elapsed time: %f seconds\n", elapsed_time);
    
    return 0;
}
2、使用 gettimeofday() 计算实际时间
gettimeofday() 是一个更为精确的方法,返回从1970年1月1日以来的秒数和微秒数,非常适用于测量实际经过的时间。
#include <stdio.h>
#include <sys/time.h>
int main() {
    struct timeval start_time, end_time;
    
    // 获取开始时间
    gettimeofday(&start_time, NULL);
    
    // 模拟一个耗时的操作
    for (volatile int i = 0; i < 1000000000; i++) {
        // 空操作
    }
    
    // 获取结束时间
    gettimeofday(&end_time, NULL);
    
    // 计算经过的时间(秒和微秒)
    double elapsed_time = (end_time.tv_sec - start_time.tv_sec) +
                          (end_time.tv_usec - start_time.tv_usec) / 1000000.0;
    printf("Elapsed time: %f seconds\n", elapsed_time);
    
    return 0;
}
3、使用 time() 测量简单的时间
time() 是一个非常简单的方式来获取当前时间。它返回从1970年1月1日以来的秒数。适用于那些不需要微秒级别精度的简单计时任务。
#include <stdio.h>
#include <time.h>
int main() {
    time_t start_time, end_time;
    
    // 获取开始时间
    time(&start_time);
    
    // 模拟一个耗时的操作
    for (volatile int i = 0; i < 1000000000; i++) {
        // 空操作
    }
    
    // 获取结束时间
    time(&end_time);
    
    // 计算并输出程序运行的时间(以秒为单位)
    double elapsed_time = difftime(end_time, start_time);
    printf("Elapsed time: %f seconds\n", elapsed_time);
    
    return 0;
}