• static和extern


    1.static

    (1)在修饰变量的时候,static 修饰的静态局部变量只执行初始化一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。

    (2)static 修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是 extern 外部声明也不可以。

    (3)static 修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。static 修饰的变量存放在全局数据区的静态变量区,包括全局静态变量和局部静态变量,都在全局数据区分配内存。初始化的时候自动初始化为 0。

    (4)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用 static 修饰。

    (5)考虑到数据安全性(当程序想要使用全局变量的时候应该先考虑使用 static)。

    (1)静态全局变量

    static int a = 0;//声明处时被首次初始化,即以后的函数调用不再进行初始化

    (2)静态局部变量

    2.extern

    extern 声明不是定义,也不分配存储空间。事实上,它只是说明变量定义在程序的其他地方。程序中变量可以声明多次,但只能定义一次。

    当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的,C++的规则在翻译这个函数名时会把fun这个名字变得面目全非

    (1)变量

    在A.cpp中定义全局变量:

    int a = 0;//声明并且定义了一个变量a

    在B.cpp中向想使用A.cpp中的变量a:

    extern int a; //声明一个变量a

    后边就可以使用了。

    (2)函数

  • 相关阅读:
    第四周作业
    第三周作业
    第二周基础作业
    抓老鼠
    币值转换
    打印沙漏
    秋季学期学习总结
    2019春第七周作业
    2019春第六周作业 学习总结
    第五周作业总结以及学习总结
  • 原文地址:https://www.cnblogs.com/gaowensheng/p/16302093.html
Copyright © 2020-2023  润新知