removed an useless conditional + fetch the previous value before incrementing/decrementing
removed the cast to void in the macro definitions

caller might still want to look at the return value