美文网首页
static extern关键字应用分析

static extern关键字应用分析

作者: ThaiLanKing | 来源:发表于2017-07-01 08:09 被阅读8次

    static

    修饰局部变量

    一般情况下,局部变量存放于栈区,生命周期限于声明该变量的函数内部。但如果用static对局部变量进行修饰,则该变量存放在静态数据区,其生命周期一直持续到整个程序执行结束。
    PS:

    1. 虽然static修饰的变量生命周期和存储空间发生了变化,但是作用域并没有改变,其仍然是一个局部变量,作用域仅限于该语句块。
    2. 在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。

    修饰全局变量(函数)

    • 修饰变量
      表示该变量为类及其所有的对象所共有。
    • 修饰函数
      1.表示该函数属于一个类而不是属于此类的某个特定对象。
      2.对于静态成员函数,只能访问静态成员函数和静态成员变量,不能访问非静态成员函数或者变量。

    它们在存储空间中都只存在一个副本。可以通过类和对象去调用。

    extern

    1. 在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。
    2. C++中多一个用途,用于指示C或者C++函数的调用规范。比如在C++中调用C库函数,就需要在C++程序中用extern "C"声明要引用的函数。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同,用此来解决名字匹配的问题。

    参考文章:
    浅谈C/C++中的static和extern关键字

    相关文章

      网友评论

          本文标题:static extern关键字应用分析

          本文链接:https://www.haomeiwen.com/subject/zhjwcxtx.html