Manfred,
You say ansi compilers, do you mean just ansi C? You cannot initialize an array with non constants in C. You can do the above with C++. What other compilers are you using? Do you have these declarations in a C source or C++ file? Even with const keyword, it is still not allowed in C.
If you are using C, why not just
#define const_a 1
#define const_b 2
static int c[] = {const_a, const_b};