tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Fixing lint warnings

> In fact, I believe the cast should *only* be added if it is intended to
> mark the implicit cast as potentially not value preserving.

And even then there are cases where casts are only confusing.
Consider the following:
        byte[0] = foo;
        byte[1] = foo >>= 8;
        byte[2] = foo >>= 8;
        byte[3] = foo >> 8;
which quite unambiguously convers a value to little-endian bytes.
It doesn't need any casts, nor any explict '& 0xff';

I would only add 'integer' casts where they are absolutely needed in order
to generate the required value. eg when you need a product that is
larger than 'int'.

Casts like *(int *)&foo ring massive alarm bells, so I'd rather the
number of casts be kept to an absolute minimum.


David Laight:

Home | Main Index | Thread Index | Old Index