Re: Program crashes when running it outside dev environment
- From: Richard Heathfield <rjh@xxxxxxxxxxxxxxx>
- Date: Fri, 08 Jun 2007 23:37:44 +0000
Richard Tobin said:
In article <Vuadnbvvi6tuTPTbnZ2dnUVZ8vydnZ2d@xxxxxx>,
Richard Heathfield <rjh@xxxxxxxxxxxxxxx> wrote:
No, there are (rare) occasions when you do need a cast. But I don't
know of any occasion where you *need* a cast AND omitting it violates
a constraint or constitutes a syntax error.
I must be misunderstanding you...
struct foo {int id; ...};
/* comparison function for qsort() */
int compar(void *a, void *b)
{
return ((struct foo *)a)->id - ((struct foo *)b)->id;
}
Omitting the casts here would be a constraint violation.
In some respects, that's a well-constructed example. (In other respects,
not so good.) I'm afraid my only answer is that I wouldn't write it
like that, because it's broken in at least two ways. I'd write it like
this:
int compar(const void *vp1, const void *vp2)
{
const struct foo *p1 = vp1;
const struct foo *p2 = vp2;
return (p1->id > p2->id) - (p1->id < p2->id);
}
My version, unlike yours, is compatible with qsort. My version, unlike
yours, doesn't risk overflow. And my version, unlike yours, doesn't use
casts, and yet there is no constraint violation or syntax error.
--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
.
- Follow-Ups:
- Re: Program crashes when running it outside dev environment
- From: Richard Tobin
- Re: Program crashes when running it outside dev environment
- References:
- Program crashes when running it outside dev environment
- From: z
- Re: Program crashes when running it outside dev environment
- From: Richard Heathfield
- Re: Program crashes when running it outside dev environment
- From: David Tiktin
- Re: Program crashes when running it outside dev environment
- From: Richard Heathfield
- Re: Program crashes when running it outside dev environment
- From: Richard Tobin
- Program crashes when running it outside dev environment
- Prev by Date: Re: Program crashes when running it outside dev environment
- Next by Date: Re: Program crashes when running it outside dev environment
- Previous by thread: Re: Program crashes when running it outside dev environment
- Next by thread: Re: Program crashes when running it outside dev environment
- Index(es):
Relevant Pages
|