ISO C90 forbids mixed declarations and code in C
Up until the C99 standard, all declarations had to come before any statements in a block:
void foo(){ int i, j; double k; char *c; // code if (c) { int m, n; // more code } // etc.}
C99 allowed for mixing declarations and statements (like C++). Many compilers still default to C89, and some compilers (such as Microsoft's) don't support C99 at all.
So, you will need to do the following:
Determine if your compiler supports C99 or later; if it does, configure it so that it's compiling C99 instead of C89;
If your compiler doesn't support C99 or later, you will either need to find a different compiler that does support it, or rewrite your code so that all declarations come before any statements within the block.