C语言静态函数

当一个源程序由多个源文件组成时,根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。

1 内部函数(又称静态函数)

  如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。
定义一个内部函数,只需在函数类型前再加一个“static”关键字即可:
  static  函数类型  函数名(函数参数表)
关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。
使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。

2 外部函数

  外部函数的定义:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数,也就是我们最常用的函数形式。

转载于:https://www.cnblogs.com/king-77024128/articles/2002696.html

在提供的引用中,虽未直接提及典型的静态函数练习题,但可以基于引用中的静态变量相关内容进行拓展,以下是几个C语言静态函数练习题: ### 练习题1:统计函数调用次数 编写一个静态函数,用于统计该函数被调用的次数。每次调用该函数时,输出当前的调用次数。 ```c #include <stdio.h> static void countCalls() { static int callCount = 0; callCount++; printf("该函数已被调用 %d 次。\n", callCount); } int main() { countCalls(); countCalls(); countCalls(); return 0; } ``` ### 练习题2:生成斐波那契数列的静态函数 编写一个静态函数,用于生成斐波那契数列的第 n 项。使用静态变量保存中间结果,减少重复计算。 ```c #include <stdio.h> static int fibonacci(int n) { static int fib[100] = {0}; if (n == 0 || n == 1) { fib[n] = n; return n; } if (fib[n] != 0) { return fib[n]; } fib[n] = fibonacci(n - 1) + fibonacci(n - 2); return fib[n]; } int main() { int n = 10; printf("斐波那契数列的第 %d 项是: %d\n", n, fibonacci(n)); return 0; } ``` ### 练习题3:静态函数实现累加 编写一个静态函数,该函数每次调用时将传入的参数累加到一个静态变量中,并返回累加结果。 ```c #include <stdio.h> static int accumulate(int num) { static int sum = 0; sum += num; return sum; } int main() { printf("累加结果: %d\n", accumulate(5)); printf("累加结果: %d\n", accumulate(3)); printf("累加结果: %d\n", accumulate(2)); return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值