programing

time_t는 어떤 원시 데이터 유형입니까?

javaba 2022. 10. 26. 21:31
반응형

time_t는 어떤 원시 데이터 유형입니까?

데이터 타입을 알 수 없습니다.time_t플로트 더블인가요, 아니면 다른 건가요?왜냐하면 내가 그것을 표시하려면 그것에 대응하는 태그가 필요하기 때문이다.printf나머지 부분은 제가 알아서 전시할 수 있습니다.time_t그에 해당하는 데이터 유형을 알아야 합니다.

플랫폼에 따라 다릅니다.하지만 당신은 그것을 알려진 타입으로 던질 수 있습니다.

printf("%lld\n", (long long) time(NULL));

안타깝게도, 완전히 휴대할 수 있는 것은 아닙니다.보통 정수형이지만 "정수형 또는 실수형"일 수 있습니다.

기능을 사용할 수 있습니다.difftime주어진 둘 사이의 차이를 반환합니다.time_t값, 출력 값은double(difftime 매뉴얼 참조).

time_t actual_time;
double actual_time_sec;
actual_time = time(0);
actual_time_sec = difftime(actual_time,0); 
printf("%g",actual_time_sec);

항상 mktime과 같은 것을 사용하여 알려진 시간(자정, 어젯밤)을 작성하고 difftime을 사용하여 두 시간 사이의 두 배 정밀도의 시차를 얻을 수 있습니다.플랫폼에 의존하지 않는 솔루션에서는 라이브러리의 상세 내용을 조사하지 않는 한 그 이상의 성과를 얻을 수 없습니다.C 사양에 따르면 time_t의 정의는 구현 정의(라이브러리를 사용하는 라이브러리 함수가 사양에 따라 동작하는 한 라이브러리의 각 구현이 원하는 대로 정의할 수 있음을 의미합니다.)

즉, Linux 머신의 time_t 사이즈는 8바이트이며, 이는 긴 int 또는 2배임을 나타냅니다.그래서 나는 했다:

int main()
{
    for(;;)
    {
        printf ("%ld\n", time(NULL));
        printf ("%f\n", time(NULL));
        sleep(1);
    }
    return 0;
}

%ld에 의해 주어진 시간은 단계별로 1개씩 증가했으며 플로트는 매 단계마다 0.000씩 인쇄되었습니다.time_ts를 표시하기 위해 printf를 사용하는 데 열중하고 있다면, 가장 좋은 방법은 이러한 실험을 직접 시도하여 플랫폼과 컴파일러에서 어떻게 작동하는지 보는 것입니다.

언급URL : https://stackoverflow.com/questions/2792551/what-primitive-data-type-is-time-t

반응형