Re: Header files with enums instead of defines?

From: Peter Pentchev (roam_at_ringlet.net)
Date: 12/22/04

  • Next message: Peter Edwards: "Re: Header files with enums instead of defines?"
    Date: Wed, 22 Dec 2004 12:38:44 +0200
    To: Peter Jeremy <PeterJeremy@optushome.com.au>
    
    
    

    On Wed, Dec 22, 2004 at 08:08:55PM +1100, Peter Jeremy wrote:
    > On Wed, 2004-Dec-22 11:31:43 +1030, Greg 'groggy' Lehey wrote:
    > >Has anybody thought about replacing #defines with enums in header
    > >files? It would make debugging a whole lot easier. Foe example, I'm
    > >currently looking at a debug printout which contains:
    > >
    > > xerrno = 17,
    > ...
    > > xerrno = EEXIST,
    >
    > K&R2 states that errno is an "integer expression" and that the error
    > values are "macros". I suspect POSIX and newer C standards say something
    > similar.

    The Single Unix Specification goes to great pains to repeat over and
    over again that the error codes are 'symbolic constants', which IMHO
    may be taken to mean either a #define'd macro or an enum value.
    I, too, went to check with more than half a hunch that it would mandate
    that the error codes be macros, but it turned out it doesn't :)

    Still, all the other objections about enums not really being ints
    are quite valid :)

    G'luck,
    Peter

    -- 
    Peter Pentchev	roam@ringlet.net    roam@cnsys.bg    roam@FreeBSD.org
    PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
    Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
    If you think this sentence is confusing, then change one pig.
    
    



  • Next message: Peter Edwards: "Re: Header files with enums instead of defines?"

    Relevant Pages

    • Re: macro for enum to string?
      ... > Why a macro? ... > int main ... This macro converts the name of an enumeration to string but it is not ... The solution that Jeff proposed works only if the enum values start from ...
      (comp.lang.cpp)
    • Re: Enum in macro generates compile error
      ... The macro crashes with message "Compile Error Expected ... Public Enum DAQ_states 'red ... The enum variable type is not supported in Mac VBA. ...
      (microsoft.public.mac.office.excel)
    • Re: Whats The Best Practice Defining Error Codes in C
      ... error codes could be defined in different .h file ... "`Macro is bad' is bad" is bad. ... Is there any way except enum could give a type safe error code ... named constants are all of type `int', just plain `int', and there's ...
      (comp.lang.c)
    • Re: Declaration, Definition & Reference listers for C
      ... > union, enum, macro, variable and function} {declaration, definition and ...
      (comp.compilers)
    • Re: good Embedded C resources plz...
      ... Not as good type checking as const, but when enums work they can be ... caught at compile time and can be replaced with a variable or a macro ... Correct, and unless memory is being exhausted, this is not necessarily ...
      (comp.arch.embedded)