You can improve performance by reducing indirect access through pointers. Each level of indirection adds some overhead:
for ( i = 0; i < n; i++ ) { x->y->z[i] = i; }
Performance in the above example improves if it is rewritten as:
temp = x->y; for ( i = 0; i < n; i++ ) { temp->z[i] = i; }
(C) Copyright IBM Corporation 1992, 2005. All Rights Reserved.