为什么time
函数通常使用如下:
time_t currentTime;
currentTime = time( NULL );
而不是:
time_t currentTime;
time( ¤tTime );
第一种方法使用的更多是因为它可以说更具可读性吗?或者还有其他原因吗?
感谢。
编辑:另外,为什么time
功能甚至是这样设计的?为什么有两种方法来设置变量?
答案 0 :(得分:6)
从函数返回值比传递更改的参数更有意义。
这可能是因为我们在功能和子程序不同的语言上学习,今天不了解这些年轻人。
答案 1 :(得分:1)
当然只有K& R可能知道真正的答案,但我怀疑这只是一个“事件”,因为历史实施的原因。例如,这个函数的设计可能是以void time(time_t*)
开头的,因为在某种形式的pre-ansi C中根本不可能返回类型为time_t
的值,而后来只是在值返回时进化而来功能
如果这是解释,那么保持参数的原因当然是与现有代码的向后兼容性。
答案 2 :(得分:1)
最常见的格式实际上是time_t currentTime = time( NULL );
这个更短,并且不会使currentTime
变量未初始化。该参数是历史性事故,没有用处。
答案 3 :(得分:-1)
timer参数是指向time_t类型的对象的指针,其中存储时间值。 或者,此参数可以是空指针,在这种情况下,不使用该参数,但函数仍返回time_t对象。
所以你不需要创建一个time_t对象。