🔧 C23 ・ stdbit.h ・ C23
stdc_leading_zeros の使い方unsigned int stdc_leading_zeros(x);
符号無し整数の最上位ビットから連続する0の個数を数えるC23の型総称関数(マクロ)。ビット幅の判定やビット演算を使った最適化のコードでよく使われる。 unsigned charからunsigned long longまで様々な整数型に対して同じ名前のマクロで動作する型総称の仕組みを持つ。
#include <stdbit.h>
#include <stdio.h>
int main(void) {
unsigned int x = 1;
printf("%u\n", stdc_leading_zeros(x));
return 0;
}
⚠️ 引数が0のときの結果は型のビット幅そのものになる(規格で定義済み)。処理系間の互換のため確認しておく。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
stdc_leading_zeros と一緒に使う関数ckd_add
ckd_mul
ckd_sub
free_aligned_sized
free_sized
stdc_bit_ceil
stdc_bit_floor
stdc_bit_width
stdc_count_ones
stdc_count_zeros
stdc_has_single_bit
stdc_trailing_zeros
strndup
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。