Цитата(SM @ Feb 8 2015, 21:14)

Обычно, так по привычке выходит... Чтобы, если что, внутри структуры можно было написать нечто вроде struct abc_s *next_item; и никто это не обругал.
Так а почему все-таки так нельзя делать?
Если просто выполнить typedef так:
Код
typedef struct
{
int a;
char b;
} test_t;
то все работает.
Но мне для связного списка как раз нужно поле с указателем на следующий элемент:
Код
typedef struct
{
int a;
char b;
test_t *next;
} test_t;
вот так не работает, пиште "unknown type name". Но почему? Тип test_t ведь определен.
Приходится делать так:
Код
typedef struct
{
int a;
char b;
struct test_t *next;
} test_t;
А чтобы потом в коде еще можно было сделать так:
Код
test_t *s_test;
s_test = s_test->next;
(ошибка "a value of type "test_t *" cannot be assigned to an entity of type "struct test_t *")
приходится добавлять test_t между идентификатором struct и фигурными скобками:
Код
typedef struct test_t
{
int a;
char b;
struct test_t *next;
} test_t;