Я ноб у C и мне нужна помощь, чтобы мой код ... хорошо ... сделал что-нибудь. У меня есть следующий файл .h.Вложенные структуры в C
typedef struct
{
int active;
int dead;
ucontext_t t;
struct node *link;
}gtthread_t;
struct node{
struct gtthread_t thread;
};
typedef struct
{
int rubic;
}gtthread_mutex_t;
Это в файле .h ... в .h файл, в котором я должен был #include ucontext.h ... что я знаю, я тоже не должен делать ... но это только я могу получить доступ к ucontext_t, я нахожу.
Итак, моя ошибка здесь «полевая резьба имеет неполный тип».
Почему? Что это вообще значит? И как я могу, возможно, НЕ импортировать ucontext.h, если я хочу объявить структуры с такими типами данных в файле .h?
Woooww ... не понимал, что это различает эти два. Я решил изменить typename на typedef. Загади меня это, хотя - как я могу получить доступ к узлу для потоковой передачи данных потока? node-> резьбовых> активный? Например? – PinkElephantsOnParade
поскольку 'thread' не является указателем, к которому вы хотели бы получить доступ, например' node-> thread.active' (предполагая, что 'node' является указателем на' struct node'). В C 'a-> b' эквивалентно' (* a) .b' –