【问题标题】:Constant Pointer / structs常量指针/结构
【发布时间】:2009-11-09 19:36:19
【问题描述】:

在我的编程课上,我们有

struct Time {
    int hours, min, sec;
}

我们要创建一个方法来计算两次之间的差异:

Time *timeDiff(const Time *t1, const Time *t2)

我认为我可以通过以秒为单位获取所有内容,然后减去这两个值来创建时差,但这样做似乎需要额外的工作

long hour1 = t1->hours;
long min1 = t1->min;
long sec1 = t1->sec;

然后使用这些值得到以秒为单位的时间,第二次做类似的事情,然后减去。有什么想法吗?谢谢!

【问题讨论】:

  • 你描述的方式其实是一种非常合理的做法。电脑就是这么傻。我假设两个时间值总是在同一天内,而不用担心两个时间值可能跨越一天以上。 t1 是否可能比 t2 更早,反之亦然?需要记住的一点。

标签: pointers struct constants


【解决方案1】:

您描述的方式听起来完全正确。我可能会做类似的事情

int sec = t1->sec + 60*(t1->min + 60*t1->hours);

然后对 t2 进行类似的处理,然后从另一个中减去一个并将结果分解为分钟和小时。

【讨论】:

  • 同意这是最通用的方式 - 并且可以轻松扩展以包括天数。创建两个函数 - 一个用于将 struct Time 转换为秒,另一个用于相反的操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 1970-01-01
  • 2012-02-07
相关资源
最近更新 更多