[U-Boot] [PATCH] Introduce a global bool type
Scott Wood
scottwood at freescale.com
Mon Jan 21 23:51:30 CET 2013
On 01/21/2013 04:36:42 PM, Måns Rullgård wrote:
> Scott Wood <scottwood at freescale.com> writes:
>
> > On 01/19/2013 03:30:30 AM, Albert ARIBAUD wrote:
> >> /* what I favor */
> >> clk_is_enabled = ((reg_val >> 9) & 1) ? true: false;
> >> ip_is_enabled = clk_is_enabled && pwd_is_enabled;
> >> if (clk_is_enabled) { ...
> >>
> >> rather than assigning them 'zero/nonzero', or using bitwise ops on
> >> booleans, or testing against boolean constants (although I concede
> >> that the first line below wins over its counterpart above as far as
> >> concision is concerned).
> >
> > Conciseness can be improved with "!!((reg_val >> 9) & 1)".
>
> x & 1 is already either zero or one. Any further operations are
> nothing
> but obfuscation.
The point is to avoid depending on the actual integer values of the
boolean type, and make the code more robust against changes (e.g.
someone later comes along and says "hmm, that 1 should be a 3 because
we care about that other register bit as well" without noticing that
it's being assigned to a boolean.
-Scott
More information about the U-Boot
mailing list