AIX C:constant expr in array decl breaks cc

Johann Schweigl johnny at edvvie.at
Sat Oct 14 15:49:34 AEST 1989


Is there *formally* anything wrong with the following global declaration:

void (*foo[2][0 + 1 + 1 + 1])() = {
	{ fun1, fun2, fun3 },
	{ fun4, fun5, fun6 }
};

AIX C will not compile this but issue an error saying a '}' is missing on
both initialization lines.
The compiler gets confused by the '[0 + 1 + 1 + 1]'. Replace it by [3]
and everything works fine. The addition chain was generated by the 
the preprocessor.
Should it be like this, or is this an error?
-- 
This does not reflect the   | Johann  Schweigl | DOS?
opinions of my employer.    | johnny at edvvie.at | Kind of complicated
I am busy enough by talking |                  | bootstrap loader ...
about my own ...            |   EDVG  Vienna   | 



More information about the Comp.lang.c mailing list