This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Pointers in comparison expressions
- From: Andreas Schwab <schwab at suse dot de>
- To: "Dave Korn" <dave dot korn at artimi dot com>
- Cc: "'Daniel Berlin'" <dberlin at dberlin dot org>, <mrc dot lrn at inwind dot it>,<gcc at gcc dot gnu dot org>
- Date: Tue, 12 Jul 2005 22:59:46 +0200
- Subject: Re: Pointers in comparison expressions
- References: <SERRANOIXMP9oxHETEW000004de@SERRANO.CAM.ARTIMI.COM>
"Dave Korn" <dave.korn@artimi.com> writes:
> Since pointer subtraction is well defined, and it returns an int, then ...
>
> int *a, *b;
>
> if (a < b)
> dosomething ();
>
> ... is just the same as ...
>
> int *a, *b;
>
> if ((b - a) >= 0)
> dosomething ();
This may not work correctly if ((char*) b - (char*) a) % sizeof int != 0
(which can happen if __alignof__ int < sizeof int).
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."