【C语言】static关键字的三种用法

【C语言】static关键字的三种用法

C语言中的static关键字是一个存储类说明符,它可以用来修饰变量和函数。static关键字的主要作用是控制变量或函数的生命周期和可见性。以下是static关键字的一些主要用法和含义:

  1. 局部静态变量

    • static修饰局部变量时,它将变量的生命周期从函数调用的开始延伸到程序的结束。这意味着静态局部变量在函数调用结束后不会消失,而是保持其值,直到程序结束。
    • 静态局部变量只在声明它的文件内部可见,即它们具有文件作用域。

    示例:

    c 复制代码
    void func() {
        static int var = 10; // 静态局部变量
        ++var;
        printf("%d\n", var);
    }

    每次调用func()时,var的值都会增加,因为它在函数调用之间保持其值。

  2. 全局静态变量

    • static修饰全局变量时,它将变量的可见性限制在声明它的文件内部,即它具有内部链接。这意味着其他文件无法访问这个变量,即使它在其他文件中被声明为extern

    示例:

    c 复制代码
    static int global_var = 20; // 只在当前文件可见
  3. 静态函数

    • static修饰函数时,它将函数的可见性限制在声明它的文件内部。这意味着该函数不能被其他文件调用,它具有内部链接。

    示例:

    c 复制代码
    static void my_function() {
        // 函数体
    }

    my_function()只能在声明它的文件中被调用。

相关推荐
海天胜景5 分钟前
vue3 获取选中的el-table行数据
javascript·vue.js·elementui
翻滚吧键盘25 分钟前
vue绑定一个返回对象的计算属性
前端·javascript·vue.js
苦夏木禾29 分钟前
js请求避免缓存的三种方式
开发语言·javascript·缓存
开-悟36 分钟前
嵌入式编程-使用AI查找BUG的启发
c语言·人工智能·嵌入式硬件·bug
超级土豆粉38 分钟前
Turndown.js: 优雅地将 HTML 转换为 Markdown
开发语言·javascript·html
秃了也弱了。44 分钟前
Chrome谷歌浏览器插件ModHeader,修改请求头,开发神器
前端·chrome
乆夨(jiuze)1 小时前
记录H5内嵌到flutter App的一个问题,引发后面使用fastClick,引发后面input输入框单击无效问题。。。
前端·javascript·vue.js
忧郁的蛋~1 小时前
HTML表格导出为Excel文件的实现方案
前端·html·excel
小彭努力中1 小时前
141.在 Vue 3 中使用 OpenLayers Link 交互:把地图中心点 / 缩放级别 / 旋转角度实时写进 URL,并同步解析显示
前端·javascript·vue.js·交互
然我2 小时前
别再只用 base64!HTML5 的 Blob 才是二进制处理的王者,面试常考
前端·面试·html