clamp_val — return a value clamped to a given range using val's type
current value
minimum allowable value
maximum allowable value
This macro does no typechecking and uses temporary variables of whatever type the input argument 'val' is. This is useful when val is an unsigned type and min and max are literals that will otherwise be assigned a signed integer type.