On Mon, 12 Jan 2004 [EMAIL PROTECTED] wrote:

> Let me give another example.
> When reading DOS-type partition tables, one encounters four bytes
> that give the start of a partition. Least significant byte first.
> 
> So everybody who does not want to know how integers are represented
> on the current architecture writes
>       start = p[0] + (p[1] << 8) + (p[2] << 16) + (p[3] << 24);
> And it just works.

Really, do you think your statement is better, clearer, or less
error-prone than this:

        start = get_be32(p);

or even:

        start = get_be32(&p[0]);

?  Sure this requires one to know the meanings of big- and little-endian;
but anybody who doesn't understand _that_ shouldn't be writing such
programs anyway.

Alan Stern



-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to