我不知道这个符号“〜”在C语言中的作用。任何帮助表示赞赏。
这是代码,它涉及的是一个既有数字又有数字的结构,大小只是该数字的字节数。如果大小的第一位为1,则应保存多个变量,并且大小应保存变量数。我现在不明白在get_size makro中“〜”是什么意思。
typedef struct {
unsigned int size; /* byte count of payload data */
unsigned char data[1]; /* payload data, size as needed */
} *ObjRef;
#define MSB (1 << (8 * sizeof(unsigned int) - 1))
#define IS_PRIM(objRef) ((( objRef)->size & MSB) == 0)
#define GET_SIZE(objRef) ((objRef)->size & ~MSB)