我读了这段代码:
static bool time_expired(uint16_t time, uint16_t start_time, uint16_t tmo) {
if (time >= start_time) {
return (time - start_time) >= tmo;
} else {
return time + (0xFFFF - start_time) >= tmo;
}
}
现在,我不明白它是如何运作的。我不明白
return (time - start_time) >= tmo;
因为运算符> =是“大于或等于”。
答案 0 :(得分:4)
表达式
(time - start_time) >= tmo
和
time + (0xFFFF - start_time) >= tmo
是bool类型;在任何一种情况下,都返回一个布尔值,它匹配函数的返回类型。
但据我所知,C不提供单独的布尔类型;也许这个语言是C ++。
答案 1 :(得分:1)
(time - start_time) >= tmo
在C中为1或0.它具有int
类型。