У меня есть такая структура в C:
struct print_arg {
struct print_arg *next;
enum print_arg_type type;
union {
struct print_arg_atom atom;
struct print_arg_field field;
struct print_arg_typecast typecast;
struct print_arg_flags flags;
struct print_arg_symbol symbol;
struct print_arg_func func;
struct print_arg_string string;
struct print_arg_op op;
struct print_arg_dynarray dynarray;
};
};
Я использую swig
для экспорта python
привязок.На самом деле Swing не поддерживает вложенные объединения, подобные этому, но с объявлением переменной все в порядке:
union {
struct print_arg_atom atom;
struct print_arg_field field;
...
} value;
Это решение на самом деле мне не подходит, потому что оно ломает много кода C, используя эту структуру (выизменить способ доступа к членам объединения).
Я думаю о двух возможностях:
Добавить объявление переменной value
, чтобы проблема swig была решена, но мне нужноспособ получить доступ к членам объединения непосредственно в C (чтобы не нарушать множество функций).Знаете ли вы один или несколько?
Найдите другой способ в глотке.Вы знаете одно или несколько?
Любое другое решение приветствуется!