in many (most) cases the compiler will load the base of the struct into a register and use that to access various members of the struct within a function. you have to keep in mind that even if the struct is a global static (which means its memory adress is known at compile time) can not be simply accessed without "pointer indirection". (there is no immediate load from a 32bit adress). also if the struct is local in a function, it will be created on the stack and thus the (a) pointer that can be used to access it IS already in a register. so while it does make a difference on other cpus, on mips (and other risc processors) the resulting code would be almost the same.[/code]