Тип в скобках перед R value это явный вызов функции operator() - преобразование типа значения в стиле C. В данном случае явно указано, что результат функции abs нужно преобразовать в тип int. Не знаю какой тип у value. Тут, если тип value помещается в int, то явное преобразование не требуется. Однако, на преобразование long в int, компилятор может выдать предупреждение. Явное преобразование подавляет вывод предупреждения.
Эмм. Если мне не изменяет память, abs - интовая функция. По крайней мере в стандартном C. А если нужен модуль от float-а - нужен fabs. Или в arduino abs перегружен?
макрос https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/Arduino.h Код (C++): #define abs(x) ((x)>0?(x):-(x))