Hi all,

A relatively mundane question:

Is there a preferred means of writing a foreign import declaration for a 
C function with a prototype that takes an "enum" argument?

i.e., in C we have:

enum bar {
   GOOD,  BAD
};

void foo(enum bar x);

I recall from some sessions with gdb some years ago that most C 
compilers encode enums as if they were unsigned short values (i.e. 16 
bits on most platforms).  Does anyone know off hand:

    - Is it a safe, portable assumption that enums will always be 
encoded as an unsigned short or 16-bit word?

    - If so, should one prefer "Word16" or "UShort" on the Haskell side 
for the foreign import declaration?

    - If not, then how should enum values be declared in the FFI?

Appologies if the FFI addresses this issue and I have overlooked it.

Thanks,

        -antony

-- 
Antony Courtney
Grad. Student, Dept. of Computer Science, Yale University
[EMAIL PROTECTED]          http://www.apocalypse.org/pub/u/antony

_______________________________________________
FFI mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/ffi

Reply via email to