如何声明(不是定义)一个静态全局变量?

这是一个语法问题

比如我有如下代码:

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    // 这是第6行
    printf("%d\n", a);
    
    return EXIT_SUCCESS;
}

static int a = 10;

编译会报错:a未定义
如果第6行写

extern int a;

编译还是会报错:static declaration of 'a' follows non-static declaration


问题是:第6行写什么,才会把最下面的变量a的作用域提到 printf("%d", a); 处?

阅读 2k
1 个回答

把最后一行的关于a的定义放到main之前不会报错了,请问为何不这样做呢?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏