Takže jestli jsem to dobře pochopil, mělo to být takhle:
unsigned efficient_adc_by_ponkrac
(unsigned a, unsigned b, bool * carry_ptr)
{
unsigned const c = a + b + (unsigned)*carry_ptr;
*carry_ptr = (int)(a | b) < 0 && (int)c >= 0;
return c;
};