Задать вопрос
@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),
     ]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы