Yeah. To access x, y, or z, temp would have to be defined as "VECTOR temp" or "VECTOR* temp". If it's var temp[3], you would have refer to them as temp[0], temp[1], and temp[2]... although in your line of code you posted, both of those would be redundant, since you're referring to temp as a whole, not just the x component.

Code:
vec_diff(temp,camera.x,my.x);



See how that works.