You should never copy naming conventions of your C implementation or third party libraries. They use their naming convention to not interfere (have name clashes) with your code.
The use of tag names starting with an underscore is expressly forbidden in ISO C99, 7.1.3:
— All identifiers that begin with an underscore are always reserved for use as identifiers with file scope in both the ordinary and tag name spaces.
Personally, I believe using typedefs for structs is completely silly, since all it does is saving you from writing the struct
keyword in a few places--information that should rather not be hidden behind a typedef. I always cringe when I see typedef names for structs that end in *_s
just to signify that the typename is an alias for a struct.