Declaring variables mid-function

Shawn NRLax27@aol.com
Sat Dec 18 15:01:00 GMT 1999


    I am writing a medium sized program, and ran into a problem where gcc
would not compile any function that did not have all of its variables
declared as the first lines of the function.  As a test, I wrote this small
program:

int test(char *tst, char *tst2, char **tst3);
int test2(void);

int main()
{
 test2();

 char *tst;
 char *tst2;
 char *tst3;

 test(tst, tst2, &tst3);

 return 1;

}

int test(char *tst, char *tst2, char **tst3)
{
 return 21;
}

int test2(void)
{
 return 21;
}

When trying to compile this, seemingly simple program, gcc complains.  This
is the output:

bash-2.03$ gcc test.c -o test
test.c: In function `main':
test.c:8: parse error before `char'
test.c:12: `tst' undeclared (first use in this function)
test.c:12: (Each undeclareed identifier is reported only once
test.c:12: for each function it appears in.)
test.c:12: `tst2' undeclared (first use in this function)
test.c:12: `tst3' undeclared (first use in this function)

Does anybody have any idea what is going on here?  My system is a Pentium,
with 48 MB ram, running Slackware Linux 7.0, gcc version 2.91.66 (egcs).
Thank you in advance!

-Shawn





More information about the Gcc-help mailing list