鑑於我有一個C結構如下。我能夠使用不安全的指針讀取數據聯合值,但無法確定如何設置聯合數值數據?cgo如何設置C聯合值
typedef struct val {
char *var1;
type type;
union {
char *binary_val;
char *bits_val;
bool bool_val;
double decimal64_val;
char *enum_val;
char *identityref_val;
char *instanceid_val;
int8_t int8_val;
int16_t int16_val;
int32_t int32_val;
int64_t int64_val;
char *string_val;
uint8_t uint8_val;
uint16_t uint16_val;
uint32_t uint32_val;
uint64_t uint64_val;
} data;
} val_t;
有沒有辦法在C中創建輔助方法?設置string_val的例子是完美的嗎?我知道Go代表聯合作爲一個字節數組,最長的類型設置字節數組的長度。
就像你可以用'unsafe.Pointer'讀取值一樣,你也應該能夠寫出它們。 – fuz