Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C 언어 difftime() 함수 완벽 정리 – 두 시간 값의 차이 계산하기

C 표준 라이브러리에는 시간과 관련된 다양한 함수들이 포함되어 있으며, 그중 difftime()은 두 시간 값 사이의 차이를 계산하는 데 사용되는 함수입니다. 이번 글에서는 difftime()의 기본 개념, 사용 방법, 그리고 실제 동작 예제까지 자세히 살펴보겠습니다.

difftime() 함수란?

difftime() 함수는 두 개의 time_t 타입 시간 값을 인자로 받아, 두 시점 사이의 경과 시간을 초 단위로 반환합니다.

함수의 원형은 다음과 같습니다.

double difftime(time_t end, time_t beginning);

여기서 주의할 점은 인자의 순서입니다. 첫 번째 인자는 나중 시간(상한), 두 번째 인자는 먼저 측정한 시간(하한)이며, 함수는 두 인자 간의 차이를 double 형태로 반환합니다.

difftime() 사용 예제

아래 예제는 프로그램 시작 시점의 시간을 기록한 후, 5초 동안 카운트를 진행하고 종료 시점의 시간을 기록하여 두 시간의 차이를 출력합니다.

#include <time.h>
#include <stdio.h>
#include <unistd.h>

main() {
    int sec;
    time_t time1, time2;

    // 시작 시간 기록
    time(&time1);
    printf("Current Time: %ld\n", time1);

    // 5초 동안 카운트 진행
    for (sec = 1; sec <= 5; sec++) {
        sleep(1);
        printf("Count: %d\n", sec);
    }

    // 종료 시간 기록
    time(&time2);
    printf("Ending Time: %ld\n", time2);

    // 두 시간의 차이 출력
    printf("Difference is %.2f seconds", difftime(time2, time1));
}

실행 결과

Current Time: 1554918635
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
Ending Time: 1554918640
Difference is 5.00 seconds

코드 설명

- time(&time1): 현재 시각을 초 단위로 가져와 time1에 저장합니다.
- sleep(1): 1초씩 대기하며 총 5초가 경과하도록 합니다.
- time(&time2): 작업이 끝난 후의 시각을 time2에 저장합니다.
- difftime(time2, time1): 종료 시간에서 시작 시간을 빼 경과 시간인 5초를 계산합니다.

정리

difftime()은 실행 시간 측정, 타이머 구현, 성능 분석 등 다양한 상황에서 유용하게 활용될 수 있는 함수입니다. 반환값이 double 타입이므로 소수점 단위의 정밀한 출력도 가능하며, <time.h> 헤더 파일을 포함하기만 하면 별도의 설정 없이 바로 사용할 수 있습니다.