Исторически time_t
был абстрактным типом, и, вероятно, ожидалось, что это может быть структура или тип расширения, который не может быть надежно возвращен, или где компиляторы могут не согласиться в ABI для его возврата, например что возвращение путем сохранения его по адресу, указанному вызывающим абонентом, «имело смысл». Обратите внимание на существование интерфейса difftime
и неопределенность C в отношении интерпретации значений time_t
. Только POSIX (намного позже) требовал, чтобы единица измерения составляла секунды (начиная с эпохи и определяя эпоху). Я не уверен, есть ли какие-то конкретные доказательства этого как мотивация (может быть, в документе об обосновании C89?), Но это та область, в которой я хотел бы рассмотреть.
Для C ++ это просто то, что std::time
интерфейсом является функция C time
, заключенная в std::
.