Re: Use enum to declare errno values

From: Denis Vlasenko
Date: Thu Nov 24 2005 - 02:22:54 EST


On Wednesday 23 November 2005 17:44, moreau francis wrote:
>
> --- Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> a écrit :
>
> > On Mer, 2005-11-23 at 16:31 +0200, Denis Vlasenko wrote:
> > > Enums are really nice substitute for integer constants instead of #defines.
> > > Enums obey scope rules, #defines do not.
> > >
> > > However enums are not widely used because of
> > > 1. tradition and style
> > > 2. awkward syntax required: enum { ABC = 123 };
> >
> > The SATA layer uses enum for constants and while it was a bit of change
> > in style when I met it, it does seem to work just as well
>
> I guess we won't use enumeration because it needs to many changes...Each
> function that returns a errno value should have their prototype changed like
> this:
>
> int foo(void)
> {
> int retval;
> [...]
> return retval;
> }
>
> should be changed into
>
> enum errnoval foo(void)
> {
> enum errnoval retval;
> [...]
> return retval;
> }

There exist "unnamed" enums, which do not introduce new type,
just a few symbolic constants of type 'int':

enum /* no name here! */ { A, B, C, D, E };
--
vda
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/