Header files with enums instead of defines?
Sam
sah at softcardsystems.com
Tue Dec 21 20:29:56 PST 2004
> On Tuesday, 21 December 2004 at 20:43:14 -0500, Brian Fundakowski Feldman wrote:
>> On Wed, Dec 22, 2004 at 11:31:43AM +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,
>>>
>>> To find out what that means, I need to go to
>>> /usr/src/include/sys/errno.h and look for 17. I find:
>>>
>>> #define EEXIST 17 /* File exists */
>>>
>>> If we were to change this to
>>>
>>> enum EEXIST = 17; /* File exists */
>>>
>>> I'd then be able to see:
>>>
>>> xerrno = EEXIST,
>>>
>>> That makes debugging a whole lot easier. About the only down side I
>>> can see is that you can't #undef an enum. Is this a big deal?
>>
>> I think you'll screw up an awful lot of people that #ifdef based upon
>> the errno names.
>
> *sigh* Yes, I didn't think about that. Never mind.
Seems a shame to forgo utility to avoid breaking a fragile
assumption. Maybe an ifdef ERRNO_T in errno.h that defines
an enum errno_t instead?
Sam
More information about the freebsd-arch
mailing list