.\" Automatically generated by Pandoc 2.9.2.1 .\" .TH "al_fixsub" "3alleg5" "" "Allegro reference manual" "" .hy .SH NAME .PP al_fixsub - Allegro 5 API .SH SYNOPSIS .IP .nf \f[C] #include al_fixed al_fixsub(al_fixed x, al_fixed y); \f[R] .fi .SH DESCRIPTION .PP Although fixed point numbers can be subtracted with the normal \f[C]-\f[R] integer operator, that doesn\[cq]t provide any protection against overflow. If overflow is a problem, you should use this function instead. It is slower than using integer operators, but if an overflow occurs it will set Allegro\[cq]s errno and clamp the result, rather than just letting it wrap. .PP Example: .IP .nf \f[C] al_fixed result; /* This will put 4965 into \[ga]result\[aq]. */ result = al_fixsub(al_itofix(5000), al_itofix(35)); /* Sets errno and puts -32768 into \[ga]result\[aq]. */ result = al_fixsub(al_itofix(-31000), al_itofix(3000)); assert(!al_get_errno()); /* This will fail. */ \f[R] .fi .SH RETURN VALUE .PP Returns the clamped result of subtracting \f[C]y\f[R] from \f[C]x\f[R], setting Allegro\[cq]s errno to ERANGE if there was an overflow. .SH SEE ALSO .PP al_fixadd(3alleg5), al_fixmul(3alleg5), al_fixdiv(3alleg5), al_get_errno(3alleg5).