我正在用TSDL语言编写CTF元数据。我已经为跟踪添加了所有元数据对象。我在用C语言添加event_header_compact时遇到困难。
struct event_header_compact {
enum : uint5_t { compact = 0 ... 30, extended = 31 } id;
variant <id> {
struct {
uint27_clock_monotonic_t timestamp;
} compact;
struct {
uint32_t id;
uint64_clock_monotonic_t timestamp;
} extended;
} v;
} align(8);
stream {
id = 0;
event.header := struct event_header;
packet.context := struct packet_context;
};
上面的代码在我的CTF元数据中。我必须用C语言做同样的事情。由于C没有变体数据类型。我应该如何完成此任务?