FTR, tried to compile stuff and according to gcc error messages the following two namespaces are used in C:
- functions, variables, typedefs - structs and unions
e.g. this is valid C:
// an anonymous struct typedef'd as foo typedef struct { char c; } foo;
// a different body! struct foo { int i; };
union a_union { struct foo s1; foo s2; };