由于
答案 0 :(得分:1)
如何检查time_t变量是否已初始化?
确实没有办法检查它是否已初始化。如果它没有初始化,它可以是碰巧驻留在内存位置的任何随机值。您应该以您知道它已初始化的方式进行编程。
如果我想计算两个time_t变量的差值 difftime函数,我是否需要手动执行任何健全性检查 在调用之前?
我不这么认为。由于time_t是一个整数类型,它总是处于有效状态(整数没有像浮点一样的nan或inf状态),因此我认为你没有理由得到无效的输出。我猜你可以检查time_t的值是否有意义,因为你正在解决你的问题。比如让一个人提到2000年前的时间可能没有意义。
另外,由于difftime返回值是double,我该如何检查 这个值大于0.0?
使用if语句。 if(dt > 0.0) {...}
答案 1 :(得分:0)
请阅读:cppreference page on time_t
非常有用的信息,因为cppreference也涵盖了C。
基本上,time_t
通常实现为64位整数。这意味着time_t
的默认初始化与普通旧int
的默认初始化相同。您不必“初始化”它以在其中存储值。
和C一样,你无法真正检查你是否对一个整数值做了一些不好的操作,将它设置为几乎无法使用但仍然有效的东西 - 意思是没有,只要确保不让任何变量没有初始化。
difftime > 0
。为什么它不起作用? double
可以准确地表示最大约100,000,000,000,000的整数值。这是一个300万年的时差。