C语言中static的用法有哪些

C语言中的static关键字有很多用法,下面我们将详细介绍。

静态局部变量

1、1 定义

C语言中static的用法有哪些

在函数内部定义的变量称为局部变量,当函数调用结束后,局部变量会被销毁,而在函数外部定义的变量称为全局变量,全局变量的作用域是整个程序,如果需要在函数内部使用一个与外部作用域相关的变量,可以使用static关键字将其定义为静态局部变量。

include <stdio.h>
void func() {
    static int count = 0; // 静态局部变量
    count++;
    printf("count: %d
", count);
}
int main() {
    for (int i = 0; i < 5; i++) {
        func();
    }
    return 0;
}

输出结果:

count: 1

count: 2

count: 3

count: 4

count: 5

C语言中static的用法有哪些

1、2 特点

static局部变量的生命周期是整个程序运行期间,而不是函数调用期间。

static局部变量在函数调用之间保持其值不变。

static局部变量只能在声明它的函数内部访问。

静态全局变量

2、1 定义

在函数外部定义的变量称为全局变量,可以被程序内的任何函数访问,如果需要限制全局变量的作用域,可以使用static关键字将其定义为静态全局变量。

include <stdio.h>
static int global_var = 10; // 静态全局变量
void print_global_var() {
    printf("global_var: %d
", global_var);
}
int main() {
    print_global_var(); // 可以访问静态全局变量
    return 0;
}

2、2 特点

C语言中static的用法有哪些

static全局变量的作用域仅限于声明它的源文件。

static全局变量在程序运行期间只初始化一次。

static全局变量可以在多个源文件中共享,如果要在多个源文件中使用同一个静态全局变量,需要将其定义在一个单独的源文件中,并在其他源文件中使用extern关键字声明它。

静态函数

3、1 定义

使用static关键字修饰的函数称为静态函数,静态函数的作用域仅限于声明它的源文件,不能被其他源文件调用,静态函数可以访问静态局部变量和静态全局变量。

// file1.c
static void static_func() { // 静态函数
    printf("This is a static function.
");
}
// file2.c
extern void static_func(); // 在其他源文件中声明静态函数,但不能调用它(编译错误)

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/127931.html

(0)
K-seoK-seoSEO优化员
上一篇 2023年12月15日 09:42
下一篇 2023年12月15日 09:44

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入