示例函数和运算符 >=

example function and operator >=

我读了这段代码:

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; 因为运算符 >= 用于 "Greater than or equal to".

表达式

(time - start_time) >= tmo

time + (0xFFFF - start_time) >= tmo

是布尔类型;在任何一种情况下,布尔值都是 returned,它匹配函数的 return 类型。

不过,据我所知,C并没有提供单独的boolean类型;也许语言是 C++。

(time - start_time) >= tmo 在 C 中是 1 或 0。它有一个 int 类型。