История изменений
Исправление Deleted, (текущая версия) :
В заголовке знаковый, в коде беззнаковый, первое, емнип, ub, второе нет. Уж определитесь где мухи а где котлеты
Там UB, при условии, что на его платформе sizeof(int) > sizeof(uint16_t) (что вообще должно быть). Это потому, что ТС не знает, что при выполнение арифметических операций:
6.3.1.1/2 If an int can represent all values of the original type, the value is converted to an int; otherwise, it is converted to an unsigned int.
И поэтому не понимает, что для компилятора код
uint16_t runSpeed = stopTime - startTime;
выглядит так:
uint16_t runSpeed = (uint16_t)(((int)stopTime) - ((int)startTime));
Исходная версия Deleted, :
В заголовке знаковый, в коде беззнаковый, первое, емнип, ub, второе нет. Уж определитесь где мухи а где котлеты
Там UB. Это потому, что ТС не знает, что при выполнение арифметических операций:
6.3.1.1/2 If an int can represent all values of the original type, the value is converted to an int; otherwise, it is converted to an unsigned int.
И поэтому не понимает, что для компилятора код
uint16_t runSpeed = stopTime - startTime;
выглядит так:
uint16_t runSpeed = (uint16_t)(((int)stopTime) - ((int)startTime));