私はCで、このような構造を持っている:SWIGを使用してネストされたユニオンメンバーにアクセスするには?
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;
};
};
私はpython
バインディングをエクスポートするswig
を使用しています。実際にこのようなネストされた労働組合をサポートしていないスイングが、変数宣言とそれはokです:
union {
struct print_arg_atom atom;
struct print_arg_field field;
...
} value;
このソリューションは、実際に私にフィット、それはこの構造を使用してCコードの多くを壊すので、(あなたが変更されません組合員にアクセスする方法)。
私は2つの可能性を考える:SWIGの問題が解決されるように、value
変数宣言を追加します
が、私は(機能の多くを破壊しないように)Cに直接組合員にアクセスするための方法が必要です。あなたは1つ以上を知っていますか?
swigで他の方法を見つける。あなたは1つ以上を知っていますか?
他の解決方法は歓迎です!
答えのおかげで、この1つは私のために働く。 –