Is there any downside to using typedef char bool; enum boolean { false, true }; in C to provide a semantic boolean type?