On 17-Oct-2002, Simon Marlow <[EMAIL PROTECTED]> wrote: > > Yes. The C99 spec says (sec. 6.7.2.1): > > [#4] Each enumerated type shall be compatible with an > integer type. The choice of type is > implementation-defined but shall be capable of > representing the values of all the members of the > enumeration. [...] > > If a C compiler can choose any integer type, then it seems to me that > mixing code from two C compilers on the same platform might not work. > Hmmm.
The choice of representation of enums is part of the C ABI. Two different compilers on the same platform can use different C ABIs, so yes, mixing code from such compilers might not work. However, enums are the least of your problems there. Compilers also need to cooperate about object file format, name mangling, the usage of registers and stack, the sizes and representations of the basic types such as `int', struct padding, alignment, and so on. If two C compilers both support the same C ABI, then it is possible to mix code between them. -- Fergus Henderson <[EMAIL PROTECTED]> | "I have always known that the pursuit The University of Melbourne | of excellence is a lethal habit" WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp. _______________________________________________ FFI mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/ffi