使用自动变量作为全局范围

its*_*cvk 1 c

auto int a=5;
#include<stdio.h>
int main ()
{
    printf("%d",a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我已经读过自动变量的范围在指定的块内.在上面的程序中,由于自动变量'a'在main函数之外声明,因此它应该被赋予全局范围并且可以在main中访问.但是,似乎有一个错误.

Fre*_*Foo 5

顶级的变量不能auto.它们应该声明static,extern(在别处定义)或全局(没有关键字).

这不会编译.

$ echo "auto int c;" > test.c
$ gcc -Wall -c test.c
test.c:1:10: error: file-scope declaration of ‘a’ specifies ‘auto’
Run Code Online (Sandbox Code Playgroud)