숙제의 경우 많은 time_t
개체를 처리하는 프로그램을 작성 중입니다. 오버플로에 대해 조사해 보려고 생각했지만, 오버플로되면 모두 문제가 될 것입니다.신기원> LONG_MAX 이후로 몇 초가 지나면 어떻게됩니까?
계획이 있습니까? 신기원 이후의 시간이 저장 공간을 초과하면 어떻게됩니까?
숙제의 경우 많은 time_t
개체를 처리하는 프로그램을 작성 중입니다. 오버플로에 대해 조사해 보려고 생각했지만, 오버플로되면 모두 문제가 될 것입니다.신기원> LONG_MAX 이후로 몇 초가 지나면 어떻게됩니까?
계획이 있습니까? 신기원 이후의 시간이 저장 공간을 초과하면 어떻게됩니까?
LONG_MAX
은 2^63 - 1
입니다. 시도해보십시오 : http://google.com으로 이동하여 2^63 seconds in years
을 입력하십시오. 답을보고 정말로 걱정할 필요가 있는지 결정하십시오.
처럼 좋아. 그래, 큰 숫자에 대해서는 우스운 일이다. 나는 "오 아마도 우리가 걱정할 필요가없는 그 큰 번호 ... 2^63 초는 아마도 그다지 오래되지 않았을 것"이라고 생각했습니다. 이 대답에 만족합니다. – Ziggy
나는이 문제에 관한 위키 백과 문서를 좋아한다. 부호있는 64 비트 값을 사용하면 12 월 4 일 일요일 15:30:08에 292,277,026,596의 새 랩 어라운드 날짜가 도입됩니다. 적어도 저에게는 문제가되지 않을 것입니다. –
이런 종류의 일이 일어날 지 모른다는 생각에 슬픈 일이 있습니다. 지금으로부터 약 3 천억 년 후에. 너무 조심하세요. – Brenden
time_t를 64 비트 형식으로 만들지 않은 주류 CRT 구현이 있는지 의심 스럽습니다. –
http://en.wikipedia.org/wiki/Year_2038_problem –
@ 한스 : 틀렸어. 'time_t'는 특히 Linux/glibc를 포함하여 내가 아는 기존의 모든 32 비트 머신에서 32 비트 ('long')입니다. 어쨌든, 나는 모든 32 비트 머신이 2038 년까지 폐기 될 것이라고 기대하는 것이 현실적이라고 생각한다. –