stdc_bit_floor —
round down to the previous power
of 2
/* -lc */
#include <stdbit.h>
unsigned char
stdc_bit_floor_uc(unsigned
char value);
unsigned short
stdc_bit_floor_us(unsigned
short value);
unsigned int
stdc_bit_floor_ui(unsigned
int value);
unsigned long
stdc_bit_floor_ul(unsigned
long value);
unsigned long long
stdc_bit_floor_ull(unsigned
long long value);
typeof(value)
stdc_bit_floor(value);
The
stdc_bit_floor_type() family of
functions rounds value down to the previous power
of 2, where value is of type
unsigned char, unsigned short,
unsigned int, unsigned long, or
unsigned long long for type being
uc,
us,
ui,
ul, or
ull
respectively. The
stdc_bit_floor(value)
type-generic macro picks the appropriate
stdc_bit_floor_type() function
based on the type of value.
Returns value round down to the previous
power of 2. If value is equal to zero, zero is
returned.
The
stdc_bit_floor_type() family of
functions and the stdc_bit_floor() type-generic
macro conform to ISO/IEC 9899:2024
(“ISO C23”).
The
stdc_bit_floor_type() family of
functions and the stdc_bit_floor() type-generic
macro were added in FreeBSD 15.1.