Чтение из Вложенных структур, я понял, что структура, объявленная в другой структуре, имеет ту же область, что и содержащая структура. Я думал, что он ограничен только внутри содержащейся структуры. У меня сложилось впечатление, что ссылка . В нем указано, что существует 4 пространства имен, и один из них является членом структуры. Я "логически" предполагал, что внутренние структуры ограничены только внешним.
Может ли кто-нибудь указать ссылку на стандарт относительно того, как в этом случае работает правило области? И любое обоснование для того, чтобы внутренняя структура могла быть видимой вне содержащей структуры? Если это видно, почему бы просто не объявить структуру снаружи...
Вопрос 2. Для терминологии, когда я предоставляю члены структуры, скажите
struct out{
int a, b;
char c, d;
struct in{
int a, b;
}e;
};
Я предоставляю определение как для struct out
, так и struct in
; ИЛИ я предоставляю декларацию для обоих? Я понимаю разницу для функций и примитивных типов данных, но здесь не совсем понятно для struct.
EDIT: Полезная ссылка Я только что нашел в SO: Вложенные структуры в C и С++.
Но там это не дает никакого объяснения. И теперь я сомневаюсь, что есть один для C...