I don't know anything about Zorro but
#define FOO_LENGTH 12;
defines FOO_LENGTH as "12;" - not as "12". Thus the compiler cannot compile the following code:
int foo[12;];
The solution obviously is to remove the ";" at the end of your define statement.