Pluto <[email protected]> wrote:
This part has always bothered me. Could somebody please explain to me the rationale behind limiting functions to one usable error code?
Well, traditionally it was done because testing for 0/non-0 is a simple and fast operation. Also, boolean logic can be thought of as simple maths, as AND is multiplication and OR is addition. This only makes sense if false == 0. As for having more error codes, why would you use an int for it? Would it not be more logical to use an enum, and to explicitly test for the value upon return? Why not use exceptions? If the problem is that enums are non-extensible, and exceptions are too heavy, many libraries use the convention that 0 means success, and anything else is an error code. -- Simen
