타임 스탬프를 나타내는 데 부호있는 정수가 사용되는 이유는 무엇입니까? 1970 년에 명확하게 정의 된 시작이 0으로 표시되는데 왜 그 앞에 숫자가 필요한가? 음수 타임 스탬프가 어디서나 사용됩니까?
답변
C의 초기 버전에는 부호없는 정수가 없었습니다. (일부 프로그래머는 부호없는 산술이 필요할 때 포인터를 사용했습니다.) time()
함수 또는 부호없는 유형 중 어느 것이 먼저 왔는지 알지 못하지만 부호없는 유형을 보편적으로 사용할 수 있기 전에 표현이 확립 된 것으로 생각됩니다. 그리고 2038은 미래에 충분히 걱정할 가치가 없었습니다. 그때까지 많은 사람들이 유닉스가 여전히 존재할 것이라고 생각한 것 같습니다.
부호 time_t
가 붙은 또 다른 장점은 64 비트 (일부 시스템에서 이미 발생하고 있음)로 확장하면 1970 년 이전의 시간을 나타내는 능력을 잃지 않고 미래에 수 천억 년을 나타낼 수 있다는 것입니다. 32 비트 부호 없음 time_t
; 64 비트로 전환하기에 충분한 시간이 있습니다.)
답변
1970 년 1 월 1 일 이전의 타임 스탬프 및 날짜를 지원해야합니다.