Messages in this thread |  | | | Date | Sat, 3 Dec 2005 01:07:04 +0800 | | From | Coywolf Qi Hunt <> | | Subject | Re: Use enum to declare errno values |
| |
2005/12/3, Bill Davidsen <davidsen@tmr.com>: > Coywolf Qi Hunt wrote: > > > This is a reason why enums are worse than #defines. > > > > Unlike in other languages, C enum is not much useful in practices. > > Actually they are highly useful if you know how to use them. They allow > type checking, have auto increment, and are part of the language instead > of a feature of the preprocessor.
Yes, I know type checking and auto increment. But they are not worthwhile, at least not for serious C programming. No, I don't know how to use them comfortably.
What's wrong with sorted macros? They are more flexible and readable. enums just look weird. We also share macros b/w C and asm.
You words on language and preprocessor doesn't make any sense. It's not a feature of the preprocessor, it's what cpp is for. Look, I call it Cpp. Without this `feature', what would a C preprocessor do? You've castrated cpp.
Follow you logic, C standard should only specify C language, not anything of libc... I have no interest in arguing the relations b/w C and cpp.
> > > Maybe the designer wanted C to be as fancy as other languages? C > > shouldn't have had enum imho. Anyway we don't have any strong motives > > to switch to enums. > > The last sentence seems correct in spite of your misunderstanding of how > and why enums are used and useful. Like a driver who mis-read a map > wandering aimlessly and lost, you have come to the correct destination > by accident.
lol
> > It would have been good to use enums in the first place, I can't see > changing now because of the effort involved.
You contradict yourself rather.
-- Coywolf Qi Hunt http://sosdg.org/~coywolf/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |