首页 > 编程语言 >static关键字在C/C++中的用法

static关键字在C/C++中的用法

时间:2023-12-22 12:12:21浏览次数:40  
标签:变量 静态 void C++ 关键字 int static 函数

在C++中,static 关键字有几种不同的用法:

1. 静态(局部)变量

函数内部声明的变量或类中声明的变量前加上 static,表示这个变量的生命周期为整个程序运行期间,而不是仅在函数执行期间。静态变量在第一次调用时初始化,之后保持其值直到程序结束。

void func() {  
    static int count = 0; // 静态局部变量  
    count++;  
}  

2. 静态函数

在函数声明或定义前加上 static,表示这个函数只在当前文件内可见,不能被其他文件访问。静态函数通常用于实现仅在当前编译单元中可用的辅助函数。

static void helperFunction() {  
    // do something  
}  

3. 静态类成员

在类中声明的静态成员变量属于整个类,不是属于类的具体实例。可以直接通过类名进行访问,而不需要创建类的实例。

class MyClass {  
public:  
    static int staticMember; // 静态成员变量声明  
    static void staticFunction(); // 静态成员函数声明  
};  
int MyClass::staticMember = 0; // 静态成员变量定义和初始化  
void MyClass::staticFunction() {  
    // do something  
}  

4. 静态全局变量

全局作用域声明的变量前加上 static,表示这个变量只在当前文件中可见,其他文件无法访问,避免了全局变量的命名冲突。

static int globalVariable = 10; // 静态全局变量  

 

标签:变量,静态,void,C++,关键字,int,static,函数
From: https://www.cnblogs.com/freecheng/p/17921320.html

相关文章

  • wps js在指定区域查找关键字
    Workbooks.Item(sy112).Activate();//“关键字”所在的文件letrng=Rows.Item("3:4");//“关键字”所在行letc=rng.Find("关键字",undefined,xlValues);if(c!=null){ letfirstCol=c.Column;//将第1个获取的列号赋值给变量firstCol do{arr.push(c.Column);//将列号存入列表......
  • C++基础 -11- 类的构造函数
     ———————类的构造函数——————— ......
  • C++ Qt开发:StandardItemModel数据模型组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍StandardItemModel数据模型组件的常用方法及灵活运用。QStandardItemModel是Qt中用于存储标准......
  • Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创
    一、前言能够写出简单易用而又不失功能强大的组件,一直是我的追求,简单主要体现在易用性,不能搞一些繁琐的流程和一些极难使用的API接口,或者一些看不懂的很难以理解的函数名称,一定是要越简单越好。功能强大主要体现在功能的完整性,常规的接口肯定是必备的,然后在默认值方面,尽量将值设......
  • Visual Studio如何再次配置一个曾经配置过的C++库?
      本文介绍在VisualStudio软件中调用C++各种配置、编译完毕的第三方库的方法。  在撰写C++代码时,如果需要用到他人撰写的第三方库(例如地理数据处理库GDAL、矩阵运算库Armadillo等),并不能像Python等语言那样,安装好库后直接在不同代码文件中使用;而是需要每一次新建一个代码文......
  • 交个崔鹏题 OJ实践1-C /图的广度搜索/C++
    #include<iostream>#include<malloc.h>#include<queue>usingnamespacestd;#defineMAX10typedefintE;typedefstructNode{ intnextVex; structNode*next;}*node;structHeadNode{ Eelement; structNode*next;};typedefstruct......
  • updatetext关键字应用简介说明
    updatetext功能说明:updatetext的功能为:更新当前的text,ntext,image字段,当我们可以使用updatetext更新列中的部分数据updatetext语法简介: -----参数说明-------------------------BULK:是否采用二进制数据流,非采用二进制数据流,此参数无需输入table_name.dest_column_......
  • C++标准库std::string的find_first_not_of 方法介绍:
    C++标准库std::string 的  find_first_not_of方法介绍: 例如:stra.find_first_not_of(s_fmt_a)在字符串stra中找到第一个不在s_fmt_a字符串中出现过的字符。stra="abc",abc字符都在s_fmt_a字符串里面出现过,所以第一个不在s_fmt_a里的字符是找不到的,返回......
  • C++ Qt开发:StringListModel字符串列表映射组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStringListModel字符串映射组件的常用方法及灵活运用。QStringListModel是Qt中用于处理字符......
  • 交个崔鹏题 6-A /c++
    #include<iostream>#defineMAX10#include<malloc.h>#include<string.h>#include<stdlib.h>usingnamespacestd;typedefcharE;typedefstructEdge{ Estart; Eend; intweight;}*Edges;typedefstructGraphMatrix{ intvex,edge......