Messages in this thread | | | Date | Wed, 20 May 2015 13:52:55 -0600 | From | Jens Axboe <> | Subject | Re: [PATCH] block: Use BIT macro from include/linux/bitops.h |
| |
On 05/20/2015 01:50 PM, Jagan Teki wrote: > On 21 May 2015 at 01:13, Jens Axboe <axboe@kernel.dk> wrote: >> On 05/20/2015 01:41 PM, Jagan Teki wrote: >>> >>> On 21 May 2015 at 00:52, Jens Axboe <axboe@kernel.dk> wrote: >>>> >>>> On 05/18/2015 01:14 PM, Jagan Teki wrote: >>>>> >>>>> >>>>> Replace (1 << nr) to BIT(nr) where nr = 0, 1, 2 .... 31 >>>> >>>> >>>> >>>> I don't like it, I think it hurts readability. >>> >>> >>> What do you mean by don't like, using kernel defined macro instead of >>> numerical assignments huts readability? >> >> >> In the context of the patch, BIT(0) == (1 << 0) is obvious. But if I just >> came across BIT(7) in the code, I'd have to check, whereas anyone would >> immediately know that (1 << 7) is the 7th bit set. Hence, readability is >> worse, and that's important. > > I don't how that BIT(7) is tricky to understand as BIT(0) implies to > be set 0th bit. > If understanding of BIT(0) is same like to be as BIT(7) and these were > simplified > macro's used most of the code in kernel.
Well of course, if you know what BIT(7) is, you know what BIT(0) is. My point is that I don't know what either of them are, I'd have to look it up. Whereas anyone would immediately know what (1 << 7) or (1 << 0) is without having to look further.
-- Jens Axboe
| |