[Haifux] Intermingled code and declarations and gcc
Eli Billauer
eli at billauer.co.il
Thu Sep 17 16:36:37 MSD 2009
Thanks, that's a great idea. Unless someone comes up with some magic
flag, I'll do that.
Now, please believe me that I wouldn't think about putting declarations
in the middle of code in my own sources. But obviously some people do,
and get away with it. And then I want to compile their code.
So there is no point telling me that something is forbidden, when some
people do it and I get the punishment. ;)
Eli
Ilya A. Volynets-Evenbakh wrote:
> First of all, C does not allow mixing code and declarations. Period.
> Second, variable-size arrays aren't allowed by ANSI C either.
> However, GCC does have an extension, which allows things like that.
>
> What I'd do, is move the for loop in the second example into a separate
> (perhaps static inline) function. Something like:
>
> #include <stdio.h>
> int count_arr(char *arr[])
> {
> int i;
> for (i=0; arr[i]!=NULL; i++);
> return i;
> }
>
> int main(int argc, char argv[])
> {
> char my_array[count_arr(argv)];
> .....
> }
>
>
>
>
More information about the Haifux
mailing list