---
name: "fixsub"
section: "3alleg"
platform: "linux"
package: "liballegro-doc"
version: "2:4.2.2-2.2"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/fixsub"
---

# fixsub(3alleg)

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

## 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**(3alleg)](/fixadd/3alleg.md), [**fixmul**(3alleg)](/fixmul/3alleg.md), [**fixdiv**(3alleg)](/fixdiv/3alleg.md)
