struct st { int value; struct st *other; }; static void execute_a (struct st *st, int i) { } static void execute_b (struct st *st) { } static void parser_check (struct st *st, int i) { if (st && st->other && st->value > i && i > 0){ execute_a (st, i); } else { execute_b (st); } }