With plain C code you probably want to have something like
typedef struct params_ {
unsigned long long operand1, operand2;
unsigned long long value1;
int operation;
} params_t;
int foo(struct params_* p) {
int retcode = 0;
// do something with p along operation
if(p->operation == 0) {
p->value1 = 100 * p->operand1 + p->operand2;
}
else if(p->operation == 1) {
// ...
}
// ...
else {
retcode = -1;
}
return retcode;
}
and use it like
int main(void) {
params_t params;
params.operation = 0;
params.operand1 = 5;
params.operand2 = 42;
if(foo(¶ms) < 0) {
// Error occurred
}
unsigned long long result = params.value1;
return 0;
}
See the live demo here please.