[fpc-pascal] C Enum vs. Integer
Jonas Maebe
jonas.maebe at elis.ugent.be
Thu Sep 13 15:45:33 CEST 2012
Guillermo Martínez Jiménez wrote on Thu, 13 Sep 2012:
>> On 12 Sep 2012, at 19:11, Johann Glaser wrote:
>>
>>> Can I translate this 1:1, i.e., define an Enum in Pascal and just ignore
>>> the compiler warnings about reused values?
>>>
>>> Or should I rather define all these types as Integer and define
>>> constants for all values?
>>
>> It depends on whether you need arithmetic or not. If you do, use
>> integer constants, otherwise you can use an enum.
>
> Actually you cannot. FPC optimizes enumerations in some cases (i.e.
> in Delphi mode) but GCC uses 32bit for enumerations alwais.
The size of an enum in gcc depends on whether or not the -fshort-enums
command line option is used, and on the number of bits required to
represent its upper bound value.
> Anyway you can still use enums, but telling to FPC that you want to
> set its size by directives $PACKENUM and $ENUMSIZE.
It's $PACKENUM *or* $ENUMSIZE (they affect the same compiler setting)
Anwyay, yes, that's also what I said the part of my original mail that
you cut away.
Jonas
More information about the fpc-pascal
mailing list