一、下面这个函数存在什么问题
bool isElapsed(unsigned long durationMs) {
return (millis() - _startTime) > durationMs;
}
那问题中的情况是当(millis() - _startTime)是负数的时候,也就是当millis() < _startTime的时候,这时候的结果会被转换成无符号的大数,所以这时候比较的时候,如果durationMs是一个正常的正数,比如1000,那么这个大数肯定比durationMs大,所以函数会返回true,即使实际上还没经过足够的时间。

被折叠的 条评论
为什么被折叠?



