I have a struct

```
typedef struct
{  
    void *l_var;      
    void *r_var;    
}EXPR;

EXPR expr;

```

I initialize it 

```
expr.l_var = &motor_rt_params[0].position;
expr.r_var = &motor_rt_params[1].position;

```

Now I want to operate with the values

```
void SCRIPT_Process(void *l_var, void *r_var, uint32_t oper)
{
    int32_t res;

    switch (oper)
    {
        case OP_PLUS: 
          res = *((??? *) l_var) + *((??? *)r_var);
          break;
        case OP_MINUS: 
          res = *((??? *) l_var) - *((??? *)r_var);
          break; 
    }
}

SCRIPT_Process(expr.l_var , expr.r_var , OP_PLUS);

```

The variables may be 32, 16, 8 bit.
The question - how can I cast it to an appropriate type (instead of (??? \*)) in run time?