int a, d, e; void b(int d, int e); void c(int d, int e);
т.е. указанная строка эквивалентна
if( a) b( d, e); else c( d, e);
с той разницей, что даже самый тупой компилятор один раз будет вычислять аргументы d, e и размещать их где надо. результат вычисления выражения (a ? b : c) имеет тип void (*)(int,int)