According to K&R (Appendix A, sec 11.1): "typedef names are in the same class as ordinary identifiers. They may be redeclared in inner blocks, but an explicit type must be given in the inner declaration"