/** * 这个不仅初始话,同时也是声明或创造一个含有nbits个位的 * bitset 的数据结构的set变量 * * @param nbits 初始话bit的位数 * * @return 成功时返回bitset对象 */ bitset *bitset_init(size_t nbits) { bitset *set; set = malloc(sizeof(*set)); assert(set); /* -> 的优先级高于*,所以*set->bits表示set的bits成员所指的对象 */ set->bits = calloc(BITSET_USED(nbits), sizeof(*set->bits)); set->nbits = nbits; assert(set->bits); return set; }
bitset *bitset_init(size_t nbits) { bitset *set; set = malloc(sizeof(*set)); assert(set); set->bits = calloc(BITSET_USED(nbits), sizeof(*set->bits)); set->nbits = nbits; assert(set->bits); return set; }
//用于对bitset结构进行初始化 bitset *bitset_init(size_t nbits) { bitset *set; //为bitset结构的set变量分配内存空间 set = malloc(sizeof(*set)); //判断set指针是否为空指针 assert(set); //根据用于指定的位数(nbits)为bitset结构的bits字段分配内存空间 set->bits = calloc(BITSET_USED(nbits), sizeof(*set->bits)); //将用户指定的位数(nbits)赋予bitset结构的nbits字段 set->nbits = nbits; //判断bitset结构的bits字段是否为空指针 assert(set->bits); //返回bitset结构的set给该函数的调用者 return set; }
void bitset_reset(bitset *set) { memset(set->bits, 0, BITSET_USED(set->nbits) * sizeof(*set->bits)); }