fork download
  1. #include <cstdint>
  2. #include <iostream>
  3. #include <limits>
  4.  
  5. using namespace std;
  6.  
  7. static uint32_t current_time = numeric_limits<uint32_t>::max() - 1000;
  8.  
  9. uint32_t millis() {
  10. return current_time;
  11. }
  12.  
  13. void advance_time() {
  14. cout << "... time advances ..." << endl;
  15. ++current_time;
  16. }
  17.  
  18. int main() {
  19. uint32_t curr_millis = millis();
  20. cout << "millis() = " << millis() << endl;
  21.  
  22. for (uint8_t i = 0; i < 8; ++i) {
  23. int32_t next_gps_update = millis() + 1000;
  24. cout << "next_gps_update = millis() + 1000 = " << next_gps_update << " (unsigned: " << uint32_t(next_gps_update) << ")" << endl;
  25.  
  26. advance_time();
  27.  
  28. cout << "millis() = " << millis() << endl;
  29. cout << "millis() > next_gps_update = " << (millis() > next_gps_update) << endl;
  30. }
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
millis() = 4294966295
next_gps_update = millis() + 1000 = -1 (unsigned: 4294967295)
... time advances ...
millis() = 4294966296
millis() > next_gps_update = 0
next_gps_update = millis() + 1000 = 0 (unsigned: 0)
... time advances ...
millis() = 4294966297
millis() > next_gps_update = 1
next_gps_update = millis() + 1000 = 1 (unsigned: 1)
... time advances ...
millis() = 4294966298
millis() > next_gps_update = 1
next_gps_update = millis() + 1000 = 2 (unsigned: 2)
... time advances ...
millis() = 4294966299
millis() > next_gps_update = 1
next_gps_update = millis() + 1000 = 3 (unsigned: 3)
... time advances ...
millis() = 4294966300
millis() > next_gps_update = 1
next_gps_update = millis() + 1000 = 4 (unsigned: 4)
... time advances ...
millis() = 4294966301
millis() > next_gps_update = 1
next_gps_update = millis() + 1000 = 5 (unsigned: 5)
... time advances ...
millis() = 4294966302
millis() > next_gps_update = 1
next_gps_update = millis() + 1000 = 6 (unsigned: 6)
... time advances ...
millis() = 4294966303
millis() > next_gps_update = 1