Only a few? I encourage you to do as many as possible. I did everything I could find in E1 and only had to back off on two of them (or was I lucky?). In eparents (ptf): /* ANY */ static EIF_TYPE_INDEX ptf0[] = {0,0xFFFF}; And in evisib (cr): static char *(*cr2836[])() = { (char *(*)()) 0, (char *(*)()) F1_18, (char *(*)()) F2709_41139, (char *(*)()) F2709_41140, ... Actually, I don't remember why I didn't make that one 'const'. It may have been too complicated for my puny C skills to figure out where the 'const' goes. I just glanced at E2, etc. It looks like you could do 'Y10726_pgtype0'. You could also do 'O10724[2006]' but the initialization would be very expensive. But it wouldn't be expensive for 'O10769[5]'! What you really need here is called "Designated Initializers" (as I just found out). Unfortunately, it's a C99 addition. Visual Studio 2013 adds support for it but you may not find it everywhere else. Apparently, it's not legal in C++ at all. Randy Using a Designated Initializer: int a[6] = { [4] = 29, [2] = 15 };