Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
bgColor#ccccff
langc
void func(unsigned int ui_a, unsigned int ui_b) {
  unsigned int udiff = ui_a - ui_b;
  if (udiff > ui_a) {
    /* Handle error */
  }
  /* ... */
}

Compliant Solution (C23, Checked Integers)

This compliant solution uses the new-to-C23 checked integer arithmetic to safely perform integer subtraction:

Code Block
bgColor#ccccff
langc
#include <stdckdint.h>

void func(unsigned int ui_a, unsigned int ui_b) {
  unsigned int udiff;
  if (ckd_sub(&udiff, ui_a, ui_b)) {
    /* Handle error */
  }
  /* ... */
}

Anchor
Multiplication
Multiplication

...