Returning error codes from a function

Doug Gwyn gwyn at smoke.brl.mil
Wed Oct 31 09:48:07 AEST 1990


In article <90303.114803JI8 at psuvm.psu.edu> JI8 at psuvm.psu.edu (Dave Jeffery) writes:
>   1. Does this violate ANSI C ?

No, it's okay.  The most important reference is 3.3.16.1.

>   2. Is it portable ?

No, because pre-ANSI compilers generally did not support void*.
Since these error coded are really char* anyway, why not just
use char*.  In fact a typedef would be nice:
	typedef char *ErrorCode;
	typedef const char ErrorDef[];	/* for unchanging constants */
	#define NO_ERROR 0	/* or some other form of null pointer */

	static ErrorDef	error1 = "error1";
	...

	ErrorCode ourfun(args) {
		...
		return error1;
	}
There are all sorts of possible variations on this theme.



More information about the Comp.lang.c mailing list