Uso de variables automáticas para scope global.

auto int a=5; #include int main () { printf("%d",a); return 0; } 

He leído que el scope de las variables automáticas está dentro del bloque especificado. En el progtwig anterior, dado que la variable automática ‘a’ se declara fuera de la función principal, se le debe asignar un scope global y ser accesible dentro de la principal. Pero, parece que hay un error.

Las variables en el nivel superior no pueden ser auto . Deben ser declarados static , extern (definición en otro lugar) o globales (sin palabra clave para eso).

Esto no comstackrá.

 $ echo "auto int c;" > test.c $ gcc -Wall -c test.c test.c:1:10: error: file-scope declaration of 'a' specifies 'auto' 

En C, las variables auto scope global no están permitidas. Por definición son función variable local.