Subtracting two unsigned values results in an unsigned value, which means
abs() will have no effect.
This also means that if base is smaller than size, we'll have an
unsigned int underflow.
I did it this way (with the if) because it looked like base might be
smaller than size. However, please remove the if (and don't reinstate
the abs) if this is not the case.
return base;
if (!(base % size))
return base;
- padding = abs(base - size);
+ padding = (base > size) ? base - size : size - base;
return base + padding;
}