Задать вопрос
@lamazavr

Как объявить две структуры с полями типа друг друга?

Имеется структура в которой есть поле типа другой структуры, которая объявлен ниже.
Во второй структуре также имеется поле типа первой структуры.

class modbus_t(Structure):
    _fields_ = [
        ...
        ("backend", POINTER(modbus_backend_t)),
    ]

class modbus_backend_t(Structure):
    _fields_ = [
        ...
        ("mb", modbus_t),
     ]


Как их помирить?
  • Вопрос задан
  • 214 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
bobrovskyserg
@bobrovskyserg
Используйте атрибут инстанса, а не класса.
Или так:
class modbus_backend_t(Structure):
    pass

class modbus_t(Structure):
    _fields_ = [
        ...
        ("backend", POINTER(modbus_backend_t)),
    ]

class modbus_backend_t(Structure):
    _fields_ = [
        ...
        ("mb", modbus_t),
     ]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
31 янв. 2025, в 00:16
43000 руб./за проект
30 янв. 2025, в 21:33
5000 руб./за проект
30 янв. 2025, в 19:55
7000 руб./за проект