std::time_t time(std::time_t* arg);
返回编码为
std::time_t
对象的当前日历时间,并将其存储在该对象中除非arg
是空指针,否则由arg
指向。
我从未见过有人用非空指针参数调用std::time
。我只是想知道:
1。为什么std::time
有不必要的参数?
2。设计背后是否有动机/理由?
time_t
是一种抽象类型,可能有人期望它可能是一种结构或扩展类型,可能无法可靠地返回,或者在ABI中编译器可能不同意返回它,使得通过将其存储到呼叫者提供的地址“有意义”来返回它。注意difftime
接口的存在,以及C对time_t
值的解释方式含糊不清。只有POSIX(很久以后)才要求单位为秒(自纪元开始,并定义了纪元)。我不确定是否有任何具体证据证明其动机(也许在C89基本原理文档中?),但这是我要研究的领域。对于C ++,仅是std::time
接口是C time
函数,包装在std::
中。