# fixsub

## NAME

fixsub − Safe function to subtract fixed point numbers clamping underflow. Allegro game programming library.

## SYNOPSIS

**#include <allegro.h>**

**fixed fixsub(fixed x, fixed y);**

## DESCRIPTION

Although fixed point numbers can be subtracted with the normal ’-’ 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 ‘errno’ and clamp the result, rather than just letting it wrap. Example:

fixed result;

/* This will put 4965 into ‘result’. */

result = fixsub(itofix(5000), itofix(35));

/* Sets ‘errno’ and puts -32768 into ‘result’. */

result = fixsub(itofix(-31000), itofix(3000));

ASSERT(!errno); /* This will fail. */

## RETURN VALUE

Returns the clamped result of subtracting ‘y’ from ‘x’, setting ‘errno’ to ERANGE if there was an overflow.

## SEE ALSO

**fixadd(3)**, **fixmul(3)**, **fixdiv(3)**