I am pretty sure that ISO C says that enums are equivalant to ints always. of course, not all implementations may be ISO C compliant. John On Thu, Oct 17, 2002 at 10:01:56AM +0100, Keith Wansbrough wrote:
- If not, then how should enum values be declared in the FFI?
What you need to do is run a little autoconf-like program which constructs a program containing a suitable example, runs it through a C compiler and tells you what's going on.
hsc comes very close but I'm not certain if it does exactly what you need. If not, compiling and running this program should tell you:
Hmm, careful. The C compiler is free to be clever, and use a char if there are <=256 elements in the enum, and short or int otherwise. You want to know the size of your particular enum, not any random enum.
(betraying my age, but didn't Turbo C do this?)
--KW 8-) -- Keith Wansbrough <kw217@cl.cam.ac.uk> http://www.cl.cam.ac.uk/users/kw217/ University of Cambridge Computer Laboratory.
_______________________________________________ FFI mailing list FFI@haskell.org http://www.haskell.org/mailman/listinfo/ffi
-- --------------------------------------------------------------------------- John Meacham - California Institute of Technology, Alum. - john@foo.net ---------------------------------------------------------------------------