I've fought with this many times myself. It appears that this is a fact of life when dealing with K&R C. Every compiler I've ever used complains about that code. You simply need to define the structs and then typedef them, at least that is the way I have always gotten around this.