Tom Lane wrote:
"Heikki Linnakangas" <[EMAIL PROTECTED]> writes:
Magnus Hagander wrote:
On my platform (linux x86) it works fine when I just cast this to (int *),
but I'm unsure if that's going to be safe on other platforms. I had some
indication that it's probably not?
No, I don't think that's safe. Some googleing (*) suggests that the
compiler is free to choose any integer type for an enum.
Yeah, it's absolutely not safe.
What I'd suggest is declaring the actual variable as int. You can still
use an enum typedef to declare the values, and just avert your eyes
when you have to cast the enum to int or vice versa. (This is legal per
C spec, so you won't introduce any portability issues when you do it.)
That's pretty much the same as int variable and #defined constants. You
lose compiler checks, like assigning from one enum type to another, and
the "enumeration value ‘FOOBAR’ not handled in switch" warning.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
--
Sent via pgsql-patches mailing list (pgsql-patches@postgresql.org)
To make changes to your subscription:
http://mail.postgresql.org/mj/mj_wwwusr?domain=postgresql.org&extra=pgsql-patches