C语言extern和static

下面的代码段说明了变量和形式参数声明中怨念或者省略存储类型的所有可能的方法。

int a;
extern int b;
static int c;

void f(int d, register int e)
{
    auto int g;
    int h;
    static int i;
    extern int j;
    register int k;
}

下表说明了上述例子中每个变量和形式参数的性质。

变量和形式参数的性质
名字 存储期限 作用域 链接
a 静态 文件 外部
b  静态 文件
c  静态 文件 内部
d 自动
e 自动
g 自动
h 自动
i 静态
j 静态
k 自动

①由于这里没有显示出变量bj的定义,所以不能确定它们的链接。在大多数情况下,变量会定义在另一个文件中,并且具有外部链接。

在这4种存储类型之中,最重要的是externstaticauto没有任何效果,而现代编译器已经使register变得不如以前重要了。

posted @   木凌云  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示