C ethics question
- From: "Servé Laurijssen" <ser@xxxx>
- Date: Sat, 31 Mar 2007 13:21:33 +0200
Recently, I found myself in the following situation:
There is library software written in C which declares some externals like:
struct METER m1;
struct METER m2;
in different sourcefiles and I have no control over these sources.
Then there's functions that operate on these meters and will generate an
event which passes a METER * to identify which meter has been changed.
static void OnChangemeter(struct METER *m)
{
if (m == &m1) ...
if (m == &m2) ...
}
Now the comparison of these pointers is UB in C but in this case it's the
only way to do it. What would you do in such a situation when you work on a
project that has to be finished shortly?
Would you jump high and low to get the library writers to change this into
non UB code or would you continue knowing that it works on the current and
future platforms that this code will run on?
.
- Follow-Ups:
- Re: C ethics question
- From: CBFalconer
- Re: C ethics question
- From: Richard Heathfield
- Re: C ethics question
- From: Harald van Dijk
- Re: C ethics question
- Prev by Date: Re: Visual C++ support of C99 by using "C++ mode" (/TP)
- Next by Date: Re: C ethics question
- Previous by thread: Visual C++ support of C99 by using "C++ mode" (/TP)
- Next by thread: Re: C ethics question
- Index(es):
Relevant Pages
|