【发布时间】:2020-06-14 23:01:06
【问题描述】:
以下编译正常,仅在函数声明期间使用static:
#include <stdio.h>
static int a();
int a(){
return 5;
}
int main(){
printf("%d\n", a());
return 0;
}
附带说明,inline 函数会发生与上述相同的行为,即只有声明可以包含关键字。
但是以下失败了,但在一个变量上做同样的事情:
#include <stdio.h>
static int a;
int a = 5;
int main(){
printf("%d\n", a);
return 0;
}
出现以下错误:
non-static declaration of 'a' follows static declaration.
有什么区别?
【问题讨论】:
标签: c static declaration extern linkage