1d790b16bSRobert Clausecker.\" 2d790b16bSRobert Clausecker.\" Copyright (c) 2025 Robert Clausecker <fuz@FreeBSD.org> 3d790b16bSRobert Clausecker.\" 4d790b16bSRobert Clausecker.\" SPDX-License-Identifier: BSD-2-Clause 5d790b16bSRobert Clausecker.\" 6d790b16bSRobert Clausecker.Dd November 9, 2025 7d790b16bSRobert Clausecker.Dt STDC_FIRST_TRAILING_ZERO 3 8d790b16bSRobert Clausecker.Os 9d790b16bSRobert Clausecker.Sh NAME 10d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero 11d790b16bSRobert Clausecker.Nd find the first trailing zero in an integer 12d790b16bSRobert Clausecker.Sh SYNOPSIS 13d790b16bSRobert Clausecker.Lb libc 14d790b16bSRobert Clausecker.In stdbit.h 15d790b16bSRobert Clausecker.Ft unsigned int 16d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_uc "unsigned char value" 17d790b16bSRobert Clausecker.Ft unsigned int 18d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_us "unsigned short value" 19d790b16bSRobert Clausecker.Ft unsigned int 20d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_ui "unsigned int value" 21d790b16bSRobert Clausecker.Ft unsigned int 22d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_ul "unsigned long value" 23d790b16bSRobert Clausecker.Ft unsigned int 24d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero_ull "unsigned long long value" 25d790b16bSRobert Clausecker.Ft unsigned int 26d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero "value" 27d790b16bSRobert Clausecker.Sh DESCRIPTION 28d790b16bSRobert ClauseckerThe 29d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns () 30d790b16bSRobert Clauseckerfamily of functions returns the index of the least significant clear bit in 31d790b16bSRobert Clausecker.Fa value , 32d790b16bSRobert Clauseckerwhere 33d790b16bSRobert Clausecker.Fa value 34d790b16bSRobert Clauseckeris of type 35d790b16bSRobert Clausecker.Va unsigned char , 36d790b16bSRobert Clausecker.Va unsigned short , 37d790b16bSRobert Clausecker.Va unsigned int , 38d790b16bSRobert Clausecker.Va unsigned long , 39d790b16bSRobert Clauseckeror 40d790b16bSRobert Clausecker.Va unsigned long long 41d790b16bSRobert Clauseckerfor 42d790b16bSRobert Clausecker.Em type 43d790b16bSRobert Clauseckerbeing 44d790b16bSRobert Clausecker.Sy uc , 45d790b16bSRobert Clausecker.Sy us , 46d790b16bSRobert Clausecker.Sy ui , 47d790b16bSRobert Clausecker.Sy ul , 48d790b16bSRobert Clauseckeror 49d790b16bSRobert Clausecker.Sy ull 50d790b16bSRobert Clauseckerrespectively. 51d790b16bSRobert ClauseckerThe 52d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero "value" 53d790b16bSRobert Clauseckertype-generic macro picks the appropriate 54d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns () 55d790b16bSRobert Clauseckerfunction based on the type of 56d790b16bSRobert Clausecker.Fa value . 57d790b16bSRobert Clausecker.Sh RETURN VALUES 58d790b16bSRobert ClauseckerReturns the index of the least significant clear bit in 59d790b16bSRobert Clausecker.Fa value . 60d790b16bSRobert ClauseckerThe bits are numbered such that the least significant bit has number\~1, 61d790b16bSRobert Clauseckerand the most significant bit has number 62d790b16bSRobert Clausecker.Ms w 63d790b16bSRobert Clauseckerwhere 64d790b16bSRobert Clausecker.Ms w 65d790b16bSRobert Clauseckeris the number of bits in the type of 66d790b16bSRobert Clausecker.Fa value . 67d790b16bSRobert ClauseckerIf no bits are clear in 68d790b16bSRobert Clausecker.Fa value 69d790b16bSRobert Clausecker(i.\^e.\& 70d790b16bSRobert Clausecker.Fa value 71d790b16bSRobert Clauseckeris the bitwise complement of zero), zero is returned. 72d790b16bSRobert Clausecker.Sh SEE ALSO 73d790b16bSRobert Clausecker.Xr bit_ffc 3 , 74d790b16bSRobert Clausecker.Xr stdbit 3 , 75d790b16bSRobert Clausecker.Xr stdc_trailing_ones 3 , 76d790b16bSRobert Clausecker.Xr stdc_first_trailing_ones 3 , 77d790b16bSRobert Clausecker.Xr stdc_first_leading_zero 3 78d790b16bSRobert Clausecker.Sh STANDARDS 79d790b16bSRobert ClauseckerThe 80d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns () 81d790b16bSRobert Clauseckerfamily of functions and the 82d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero 83d790b16bSRobert Clauseckertype-generic macro conform to 84d790b16bSRobert Clausecker.St -isoC-2023 . 85d790b16bSRobert Clausecker.Sh HISTORY 86d790b16bSRobert ClauseckerThe 87d790b16bSRobert Clausecker.Nm stdc_first_trailing_zero_ Ns Em type Ns () 88d790b16bSRobert Clauseckerfamily of functions and the 89d790b16bSRobert Clausecker.Fn stdc_first_trailing_zero 90d790b16bSRobert Clauseckertype-generic macro were added in 91d790b16bSRobert Clausecker.Fx 15.1. 92d790b16bSRobert Clausecker.Sh AUTHOR 93d790b16bSRobert Clausecker.An Robert Clausecker Aq Mt fuz@FreeBSD.org 94