Question.2
A firmware engineer handles 4 commands (ADD, SUB, MUL, DIV) based on a command code (0–3). Which approach uses function pointers correctly?
Option A:
int (*ops[4])(int,int) = {add, sub, mul, div_fn};
result = ops[cmd](a, b);Option B:
int (*ops)(int,int) = add;
if (cmd==1) ops=sub; // ... etc
result = ops(a, b);Option C:
switch(cmd) {
case 0: result=add(a,b); break;
case 1: result=sub(a,b); break;
// ...
}Which is the best firmware pattern for extensibility and performance?