Спрятать в объект, отсортировать по размеру в два разных массива, в значении индекса зашифровать к какому массиву обращаться.
int int_arr[8];
char char_arr[8];
void* get_param_ptr(char i){
if(i & 0x80){
return int_arr + (i & 0x80);
}else{
return char_arr + i;
};
};