総合手引 | セクション 3 | English | オプション |
#include <bitstring.h>
マクロ bit_alloc() は、 nbits 個のビットを格納するのに十分な空間を指す型 "bitstr_t *" のポインタを返します。または、空間が利用できない場合は NULL を返します。
マクロ bit_decl() は、 nbits 個のビットを格納するのに十分な空間をスタックに割り付けます。
マクロ bitstr_size() は、 nbits 個のビットを格納するのに必要な、型 bitstr_t の要素の数を返します。これはビット列をコピーするのに便利です。
マクロ bit_clear() とマクロ bit_set() は、ビット列 name の中の、0 を起点として bit 番目のビットをクリアまたは設定します。
マクロ bit_nset() とマクロ bit_nclear() は、ビット列 name の中の start から stop までの (0 を起点として番号付けした) ビットをセットまたは クリアします。
マクロ bit_test() は、ビット列 name 内で、0 を起点として bit 番目のビットがセットされている場合、評価結果は 0 でない値になり、 それ以外の場合は 0 と評価されます。
マクロ
bit_ffs()
は、
name
が参照する
nbits
ビットの配列のなかで、セットされたビットが最初に現れる位置を
0 を起点として番号付けした値を、
value
が参照する位置に格納します。どのビットも設定されていない場合、
value
が参照する位置に、-1 が設定されます。
マクロ bit_ffc() は、 name が参照する nbits ビットの配列のなかで、セットされていないビットが最初に現れる位置を、 0 を起点として番号付けした値を、 value が参照する位置に格納します。どのビットも設定されている場合、 value が参照する位置に、-1 が設定されます。
これらのマクロの引数は、 1 回だけ評価され、安全な副作用がある 可能性があります。
#include <limits.h> #include <bitstring.h>amp;... #define LPR_BUSY_BIT 0 #define LPR_FORMAT_BIT 1 #define LPR_DOWNLOAD_BIT 2 amp;... #define LPR_AVAILABLE_BIT 9 #define LPR_MAX_BITS 10
make_lpr_available() { bitstr_t bit_decl(bitlist, LPR_MAX_BITS); ... bit_nclear(bitlist, 0, LPR_MAX_BITS - 1); ... if (!bit_test(bitlist, LPR_BUSY_BIT)) { bit_clear(bitlist, LPR_FORMAT_BIT); bit_clear(bitlist, LPR_DOWNLOAD_BIT); bit_set(bitlist, LPR_AVAILABLE_BIT); } }
BITSTRING (3) | July 19, 1993 |
総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | Computer science would have progressed much further and faster if all of the time and effort that has been spent maintaining and nurturing Unix had been spent on a sounder operating system. | ” |
— The Unix Haters' handbook |