troop.t_troop
has the same effect of:
global troop.t_troop
I don't think so. :)
If you want a type pointer (or any other type of variable) to be accessible inside functions, you have to specifically declare them as Global, in the main code.
MAX711, you're OK - local function variables are destroyed on exiting the function and so are not accessible outside of functions.