Either way is correct.
The first form evaluates both (b->ttype != TYPE_void) and b->tkey, both
of which result in either 0 or 1. The single & does a bit-wise AND on
those two values and results in 1 if both sides evaluated to 1.
In the second form, if first part evaluates to 0, b->tkey is not
evaluated, and if the first part evaluates to 1, the second part is also
evaluated. The restult, again, is only 1 if both sides evaluate to 1.
So the difference is whether or not b->tkey is evaluated, and evaluating
that is cheap (it's a bool value).
On 01/08/2020 20.54, Ranier Vilela wrote:
> Hi,
>
> At gdk\gdk_bat.c (line 1384)
> variable b->type is bool
>
> Would be a typo?
> if (((b->ttype != TYPE_void) & b->tkey) && b->batCount > 1) {
> Should be:
> if (((b->ttype != TYPE_void) && b->tkey) && b->batCount > 1) {
>
> regards,
> Ranier Vilela
>
> _______________________________________________
> developers-list mailing list
> developers-list@monetdb.org
> https://www.monetdb.org/mailman/listinfo/developers-list
>
--
Sjoerd Mullender
_______________________________________________
developers-list mailing list
developers-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/developers-list