时间函数语法

时间:2011-01-14 04:42:19

标签: c++ c syntax time readability

为什么time函数通常使用如下:

time_t currentTime;
currentTime = time( NULL );

而不是:

time_t currentTime;
time( &currentTime );

第一种方法使用的更多是因为它可以说更具可读性吗?或者还有其他原因吗?

感谢。

编辑:另外,为什么time功能甚至是这样设计的?为什么有两种方法来设置变量?

4 个答案:

答案 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对象。