C语言static函数详解:作用、示例及输出结果分析

在C语言中,static 关键字可以用于修饰函数,称为静态函数。本文将深入解析 static 函数的作用,并通过示例程序演示其与普通函数的区别。

示例程序c#include <stdio.h>

void testFunction();static void staticFunction();

int main() { testFunction(); testFunction(); staticFunction(); staticFunction(); return 0;}

void testFunction() { int count = 0; count++; printf('Normal function: %d\n', count);}

static void staticFunction() { static int count = 0; count++; printf('Static function: %d\n', count);}

static函数的作用

static 关键字赋予函数以下特性:

  1. 作用域限定: static 函数仅在定义它的源文件中可见,其他源文件无法调用。在本例中,staticFunction() 只能在当前 .c 文件内被调用。

  2. 存储类别: static 函数的存储类别由 '自动存储类别' 变为 '静态存储类别'。这意味着 staticFunction() 的生命周期从程序开始到结束,并且只会被初始化一次。

示例程序分析

  • testFunction() 是一个普通函数,每次调用都会创建新的 count 变量,函数结束后变量销毁。因此,每次调用输出都是 '1'。- staticFunction()static 函数,其 count 变量在函数调用之间保持不变,每次调用都会自增。因此,输出结果是递增的。

输出结果

Normal function: 1Normal function: 1Static function: 1Static function: 2

总结

通过输出结果可以清晰地看到 testFunction()staticFunction() 的区别:

  • testFunction() 每次调用都创建新的变量。- staticFunction() 则保持变量值并在每次调用时递增。

希望本篇文章能够帮助您理解 static 函数的作用。如果您还有其他问题,欢迎随时提问。


原文地址: https://www.cveoy.top/t/topic/cQsi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录