int foo(int); void bar(int *); void func(int args) { int key; int flag = (!args); bar(&key); if (!args) foo(1); if (foo(args)) { if (flag && key == 0) foo(2); else if (flag) foo(3); } }