.\" Automatically generated by Pandoc 2.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[] .fi .SH DESCRIPTION .PP Although fixed point numbers can be subtracted with the normal \f[C]\-\f[] integer operator, that doesn'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'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\ `result\[aq].\ */ result\ =\ al_fixsub(al_itofix(5000),\ al_itofix(35)); /*\ Sets\ errno\ and\ puts\ \-32768\ into\ `result\[aq].\ */ result\ =\ al_fixsub(al_itofix(\-31000),\ al_itofix(3000)); assert(!al_get_errno());\ /*\ This\ will\ fail.\ */ \f[] .fi .SH RETURN VALUE .PP Returns the clamped result of subtracting \f[C]y\f[] from \f[C]x\f[], setting Allegro'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).