首页 > 其他分享 >静态成员(static)VS extern

静态成员(static)VS extern

时间:2023-08-12 17:47:44浏览次数:86  
标签:函数 静态 VS static extern 全局变量 变量

static与extern区别

静态成员(static)

  • 静态全局变量:

     限制作用域,只在定义该变量的源文件内有效
    

作用于全局变量时: 叫静态全局变量。表示该变量是私有的,只能在该文件使用。不能通过extern关键字对其引用。

  • 静态局部变量:

      改变局部变量的生存周期,使得该变量存在于定义直到程序运行结束;
      类内声明,类外初始化;
    

作用于局部变量时: 叫静态局部变量,在函数调用时,只有在该函数第一次调用时才对其分配空间和初始化。在函数调用结束时,不对该变量的内存进行释放,值仍然保留。这也是于自动变量的区别。
所有对象共享同一份数据

  • 静态成员变量

      所有对象共享同一个函数;
      静态成员函数不能声明为虚函数、const函数、volatile函数;
      静态成员函数只能访问静态成员变量
    

作用于函数时: 叫静态函数,表示该函数是私有的,只能在本文件中使用,不能通过extern关键字对其引用

extern

  • 本文件: 定义在本文件下面的全局变量,想要在上面使用时需要使用extern关键字对其声明
  • 其他文件:定义在其他文件的全局变量想要在本文件使用时,若该变量未被static修饰时可通过extern关键字在本文件对其声明。即可使用

标签:函数,静态,VS,static,extern,全局变量,变量
From: https://www.cnblogs.com/zhouhongyuan/p/17625136.html

相关文章

  • VS2022 打开旧项目缺乏.net 4.5.1 & .net 4.5.2 依赖问题
    我操作系统是WIN10,.NET已经安装到最高4.8了。估计不给装4.5。按照网上提示,下载一个nuget包,解压后复制到系统相关位置,问题解决。1、首先从Microsoft.NETFramework.ReferenceAssemblies.net45下载一个依赖包https://www.nuget.org/packages/microsoft.netframework.referenceasse......
  • VS2019编译CloudCompare2.12.4
    参考:https://blog.csdn.net/pingfanderen5/article/details/1261800821.VisualStudio2019对应v142工具2.安装QT,qt5.14.2及以前的版本存在下载包,下载地址:http://download.qt.io/ ,但是5.14.2只能支持到VS2017。 所以采用在线安装的方式安装qt5.15.2版本 源码准......
  • 【230812-1】指数比较大小:16^18 vs 18^16
    ......
  • 【230812-2】指数比较大小:13^17 vs 17^13
    ......
  • occ配置(opencascade+qt+vs)
    配了几天终于配完了我真的删q先是下载了qt5.12.1和opencascade7.4.0和visualstudio2017和b站一个博主(城外柳依依)一起配的,配完还是报错先是找不到qt5scoreed.lib最后我把这个文件找到(D:\Qt\Qt5.12.1\5.12.1\msvc2017_64\lib),然后两个对应的文件复制到opencascadein64文件夹里......
  • 文心一言 VS 讯飞星火 VS chatgpt (74)-- 算法导论7.2 2题
    二、如果用go语言,当数组A的所有元素都具有相同值时,QUICKSORT的时间复杂度是什么?文心一言:在Go语言中,对一个所有元素都相等的数组进行快速排序(QuickSort)的时间复杂度是O(nlogn)。快速排序是一种分而治之的排序算法,它将一个数组分成两个子数组,然后对这两个子数组进行递归排序。在最......
  • 文心一言 VS 讯飞星火 VS chatgpt (73)-- 算法导论7.1 4题
    四、如何修改QUICKSORT,使得它能够以非递增序进行排序?文心一言:快速排序(Quicksort)是一种常用的排序算法,基于分治策略进行设计。默认情况下,快速排序会以递增序进行排序。若想修改快速排序以实现非递增排序,我们需要调整比较和交换的逻辑。以下是修改后的非递增快速排序的Python代码......
  • ovs术语和命令
    ovs术语bridge:网桥,虚拟交换机。port:端口,类型有normal、internal、patch、tunnel。每创建一个port,ovs会自动创建一个同名接口interface挂载到该port上。normal:主机网卡挂载到ovs网桥上,ovs自动创建同名port处理这块网卡进出的数据包。挂载到ovs上的网卡设备不支持分配IP,之前网卡配......
  • vscode插件推荐
    原文链接:https://www.cnblogs.com/MrFlySand/p/17623887.htmlmarkdown预览【推荐文章】VsCode更换MarkDown样式到底能有多好看?博客园VSCode客户端将本地markdown发布到博客园博客园博文列表搜索博文将本地文件关联到博客园博文拉取远程博文内容更新本地文件Mark......
  • 文心一言 VS 讯飞星火 VS chatgpt (74)-- 算法导论7.2 2题
    二、如果用go语言,当数组A的所有元素都具有相同值时,QUICKSORT的时间复杂度是什么?文心一言:在Go语言中,对一个所有元素都相等的数组进行快速排序(QuickSort)的时间复杂度是O(nlogn)。快速排序是一种分而治之的排序算法,它将一个数组分成两个子数组,然后对这两个子数组进行递归排序。......