typedef структура, прежде чем она объявлена

я не новичок, яЯ очень знаком со следующей идиомой: я

typedef struct Foo_ Foo;// I know typedef struct Foo Foo is fine, I'm just trying to make it clearer
struct Foo_
{
    int value;
    Foo *link;
};

Я просто внезапно запутался, потому что я понимаю, что этоне разрешается использовать имя (идентификатор) перед нимс объявлено. Но в декларацииtypedef struct Foo_ Foo, идентификаторFoo_ еще не существует! Как получилось, что компилятор разрешил это? Кто-нибудь, пожалуйста, пролите немного света на это, объясните мне, чтоОправдание ли такого синтаксиса?

Цитата из Википедии: Цельtypedef это назначить альтернативные имена для существующих типов.

--->8 ---

Спасибо всем вам за очень полезную информацию.

Ответы на вопрос(7)

Ваш ответ на вопрос