On 22/10/2015 17:47, Bernhard Voelker wrote:
>> Note the above does break early if non zero detected in first 16 bytes.
>>
>> Also I suspect the extra conditions involved in using longs
>> for just the first 16 bytes would outweigh the benefits?
>> I.E. the first simple loop probably breaks early, and if not
>> has the added benefit of "priming the pumps" for the subsequent memcmp().
>
> what about spending some 16 bytes of memory and do the memcmp on the whole
> buffer?
>
> static unsigned char p[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
> return 0 == memcmp (p, buf, bufsize);
memcmp has high setup costs, because the compiler doesn't know it as
well as memcpy, so no. :(
Nerd sniping at its best!
Paolo