| Compare ((bar*)foo->bar)->gar->member =(real code, struct and member names changed to protect the guilty) with struct bar* bar = foo->bar; I just spent a couple of minutes making sure that the second version is functionally equivalent to the first, and I'm still not sure. Think about it - a couple of minutes for ONE line of code. Code should be written for people first, compilers second. Say no to gratuitous obfuscation, say yes to temporary variables! |