C语言——作用域与存储变量经典实例

/*
** 作用域 存储类型 备注
*/
int a = 5;           // external  static 
extern int b;        // external  static 其实缺省为"extern"
static int c;        // internal  static external的加上“static”变为internal

int d (int e)        // d: external static 函数都是static存储   e:局部作用域,函数内部  auto  函数调用时创建,执行完消失
{
    int f = 15;        // 不具有链接属性 auto 局部变量
    register int b;    // 不具有链接属性 auto 其值初始化为“垃圾”
    static int g = 20; // 不具有链接属性 static  在函数执行前g 就被创建并赋值为20了
    extern int a;      // external static  这句声明其实没有必要
    ...
    {
        int e;        // 不具有链接属性  auto 覆盖形参的e
        int a;        // 不具有链接属性  auto 覆盖第一行的a
        extern int h; // external static 可以引用其他源文件的h;与上面的extern int a不同,这里必须extern声明
        ...
    }
    ...
    {
        int x;        // 不具有链接属性 auto  与上个代码段的e不是一个值,且覆盖形参e
        int e;        // 不具有链接属性 auto
        ...
    }
...
}

static int i()        // internal  static  函数d()也没办法引用函数i(),其作用域为本行至文件结尾
{
    ...
}
...

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值