Re: WIP: guc enums
От | Heikki Linnakangas |
---|---|
Тема | Re: WIP: guc enums |
Дата | |
Msg-id | 47CE6B04.6020708@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: WIP: guc enums (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: WIP: guc enums
|
Список | pgsql-patches |
Tom Lane wrote: > "Heikki Linnakangas" <heikki@enterprisedb.com> 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
В списке pgsql-patches по дате отправления: