One indirect function call is more expensive than one if condition.
Several if conditions are more expensive than an indirect function call.
Worrying about speed at this point is pointless:
You are waiting on the latency of the user, and you are handling stuff he can look at (i. e. there won't be huge amounts of checkboxes). Optimizing code that is executed less than a million times per second on a detailed level like this is absolutely pointless.
So, my advise is: stop worrying about the cost of an if
or function call while you are programming a user interface. Only think about such stuff inside your time consuming algorithms.
However, if you find that you are indeed using complex if
/else
ladders and/or switch
statements inside your inner loop, you might optimize by replacing those with indirect function calls.
Edit:
You say that you have 600 checks per second. Assuming you have only one if
case to handle (the situation where the if
is faster), you "save" roughly 6 microseconds per second by not using function pointer indirection, that's 0.0006% of the runtime. Definitely not worth the effort...