VEX Defaut Code Dig Out Bitfields

So last night I downloaded the VEX default code library after finally finding it, because leaving it to WPILib was just too simple for me :stuck_out_tongue:

So now I’m paying for it.

I have an old function from WPILib that I’m adapting to the default code, but since there are some implementation differences, I’m learning that it’s not quite so straightforward to write portable functions for the default code. I’m trying to pass an argument to the function with the location of one analog input and two digital outputs. I have another function with 3 joystick ins and 3 PWM outs, and it works just fine with pointers. I define the argument as a pointer, and just use the & in front of the variable during the function call.

For this one however, it’s not working anywhere near as easily. Putting a & in front of rc_ana_in01 brings up a syntax error, and doing the same for digital outputs (rc_dig_out11 and rc_dig_out12) gives me this error:

error: [1200] cannot reference the address of a bitfield

Alright, so I understand why the digital outputs are in a bitfield, that’s fine. But first of all, I can’t understand why the analog input can’t just send it’s address through, even though it’s not defined as a bitfield, and why you have to cast it to a pointer to get the compiler to be quiet. Secondly, what would be a similar method of telling the function which digital outputs to use in a way that the function can directly control them?

If I can’t do this, I guess that’s alright, I just like being able to make portable functions because it makes it easier if I have to use them somewhere else, which I commonly do.