1 (для C): есть одно пространство имен для всех тегов структуры.Вы можете иметь столько различных тегов, сколько хотите, даже если одно и то же имя используется в других пространствах имен.
Каждая структура сама по себе является собственным пространством имен ( существует "бесконечные "структуры имён ).
// You can have
struct foo { int var; }
struct bar { double var; }
struct baz { int var; }
struct qux { int var; }
// with no conflict between all the `var`