编写C的包装器时如何处理Julia中的位字段

编写C的包装器时如何处理Julia中的位字段,julia,Julia,如何处理Julia中htsFile的位字段部分? 如果我不关心具体的值uint32\t is\u bin:1、is\u write:1、is\u be:1、is\u cram:1、dummy:28,我可以只使用Cuint变量在julia中重新使用它吗 我可以在julia中使用Cuint变量替换它吗 是的,路线将是相同的。如果确实需要这些值,可以使用位掩码选择所需的位 作为旁注,该包可能对处理复杂的结构[反]序列化感兴趣(尽管我认为它没有内置的位字段支持) 我可以在julia中使用Cuint变量替

如何处理Julia中
htsFile
的位字段部分? 如果我不关心具体的值
uint32\t is\u bin:1、is\u write:1、is\u be:1、is\u cram:1、dummy:28,我可以只使用Cuint变量在julia中重新使用它吗

我可以在julia中使用Cuint变量替换它吗

是的,路线将是相同的。如果确实需要这些值,可以使用位掩码选择所需的位

作为旁注,该包可能对处理复杂的结构[反]序列化感兴趣(尽管我认为它没有内置的位字段支持)

我可以在julia中使用Cuint变量替换它吗

是的,路线将是相同的。如果确实需要这些值,可以使用位掩码选择所需的位


作为旁注,该软件包可能对处理复杂的结构[反]序列化(尽管我认为它没有内置的位字段支持)感兴趣。

您可以使用julia'a逐位操作函数(
&
>
等)提取单个位。您可以定义方便的函数,如
is_bin(x)=(x&0x01)>0

您可以使用julia'a逐位操作函数(
&
>
等)提取各个位。您可以定义方便的函数,如
is_bin(x)=(x&0x01)>0

typedef struct {
uint32_t is_bin:1, is_write:1, is_be:1, is_cram:1, dummy:28;
int64_t lineno;
kstring_t line;
char *fn, *fn_aux;
union {
    BGZF *bgzf;
    struct cram_fd *cram;
struct hFILE *hfile;
    void *voidp;
} fp;
htsFormat format;
} htsFile;