Top |

## Bounds-checking integer arithmeticBounds-checking integer arithmetic — a set of helpers for performing checked integer arithmetic |

## Functions

#define | g_uint_checked_add() |

#define | g_uint_checked_mul() |

#define | g_uint64_checked_add() |

#define | g_uint64_checked_mul() |

#define | g_size_checked_add() |

#define | g_size_checked_mul() |

## Description

GLib offers a set of macros for doing additions and multiplications of unsigned integers, with checks for overflows.

The helpers all have three arguments. A pointer to the destination is always the first argument and the operands to the operation are the other two.

Following standard GLib convention, the helpers return `TRUE`

in case
of success (ie: no overflow).

The helpers may be macros, normal functions or inlines. They may be implemented with inline assembly or compiler intrinsics where available.

## Functions

### g_uint_checked_add()

#define g_uint_checked_add(dest, a, b)

Performs a checked addition of * a*
and

*, storing the result in*

`b`

*.*

`dest`

If the operation is successful, `TRUE`

is returned. If the operation
overflows then the state of * dest*
is undefined and

`FALSE`

is
returned.Since: 2.48

### g_uint_checked_mul()

#define g_uint_checked_mul(dest, a, b)

Performs a checked multiplication of * a*
and

*, storing the result in*

`b`

*.*

`dest`

If the operation is successful, `TRUE`

is returned. If the operation
overflows then the state of * dest*
is undefined and

`FALSE`

is
returned.Since: 2.48

### g_uint64_checked_add()

#define g_uint64_checked_add(dest, a, b)

Performs a checked addition of * a*
and

*, storing the result in*

`b`

*.*

`dest`

If the operation is successful, `TRUE`

is returned. If the operation
overflows then the state of * dest*
is undefined and

`FALSE`

is
returned.Since: 2.48

### g_uint64_checked_mul()

#define g_uint64_checked_mul(dest, a, b)

Performs a checked multiplication of * a*
and

*, storing the result in*

`b`

*.*

`dest`

`TRUE`

is returned. If the operation
overflows then the state of * dest*
is undefined and

`FALSE`

is
returned.Since: 2.48

### g_size_checked_add()

#define g_size_checked_add(dest, a, b)

Performs a checked addition of * a*
and

*, storing the result in*

`b`

*.*

`dest`

`TRUE`

is returned. If the operation
overflows then the state of * dest*
is undefined and

`FALSE`

is
returned.Since: 2.48