Есть ли способ правильно определить структуры по кругу (в C)? Другими словами:
//struct struct1; Is this ok??
struct struct2 {
struct struct1* someStruct1Var;
//Other variables
};
struct struct1 {
//Some variables
struct2* (*someFunc)(struct2* someStruct2Var);
}
Поведение, которое я в основном хочу, заключается в том, что первая структура имеет переменную, которая является указателем на экземпляр второй (которая является глобальной переменной, и будет существовать только 1). Затем я хочу, чтобы вторая структура имела указатели на функции, которые возвращают тип первой структуры. Я хочу такое поведение, чтобы реализовать базовые объектно-ориентированные классы/объекты. Если есть аналогичный метод, который может выполнить то же самое, это также было бы очень полезно. Опять же, мне нужна структура класса (struct1), содержащая указатели на функции, которые принимают в качестве аргументов и возвращают переменные типа объекта (struct2). Затем мне нужно, чтобы каждый объект имел ссылку на свою глобальную переменную класса (которая имеет тип struct1).
Спасибо!