编程八股文——C/C++中静态static关键字的意义和用法

2023-12-17 15:41:13

static

  1. 修饰变量: 使变量存储在静态区,变量只初始化一次,生命周期是整个程序

    • 静态全局变量:作用域只在该文件,普通全局变量整个程序有效
    • 静态局部变量:作用域只在函数中,存储静态区,函数结束时变量值不变,下次调用该函数值接着用
  2. 修饰普通函数:函数的作用范围只在文件内

  3. 修饰成员变量:静态成员变量是唯一的、可共享的成员变量

    • 存储在静态区,只有一份实体,同一个类的所有对象可访问,没有对象使用“类名:静态成员变量”访问

    • 静态成员变量必须在类外进行初始化

  4. 修饰成员函数:静态成员函数是不需要对象就可以访问该函数

    • 静态成员函数和静态成员变量一样,不属于类,所以静态成员函数不含 this 指针,也就无法访问类的非静态成员

静态数据成员与全局变量相比的优势

  1. 静态数据成员没有进入程序的全局命名空间,因此不存在与其他全局变量名字冲突的可能;
  2. 使用静态数据成员可以隐藏信息。因为静态数据成员可以是 private 成员,而全局变量不能;

简述static对于工程模块化的作用。

static可以让全局变量或函数的作用域限制在当前模块,不会与其他模块发生冲突。

因为在嵌入式系统中,一个程序可能是很多程序员共同完成的,在定义变量及函数的过程中,可能会重命名,给系统集成带来麻烦。

文章来源:https://blog.csdn.net/qq_44814825/article/details/135044910
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。