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 ---
Спасибо всем вам за очень полезную информацию.