c语言内部文件和外部文件,C语言-内部函数和外部函数.pdf

本文详细介绍了C语言中的内部函数(静态函数)和外部函数的概念与使用。内部函数通过`static`关键字限定其作用域仅限于当前源文件,避免同名函数冲突。外部函数则可供其他文件调用,通过`extern`关键字声明。通过示例展示了如何在多个文件间组织和调用外部函数,实现特定功能,例如删除字符串中指定字符的功能。
摘要由CSDN通过智能技术生成

LAP

8.10 内部函数和外部函数

函数本质上是全局的,因为一个函数要被另外的函数调用,但是,也可以指定函数

不能被其他文件调用

根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。

8.10.1 内部函数

如果一个函数只能被本文件中其他函数所调用,它称为内部函数。

在定义内部函数时,在函数名和函数类型的前面加static。即static 类型标识

符函数名(形参表)如:

static int fun(int a,int b)

内部函数又称静态函数。

使用内部函数,可以使函数只局限于所在文件,如果在不同的文件中有同名的内

部函数,互不干扰。这样不同的人可以分别编写不同的函数,而不必担心所用函数

是否会与其他文件中函数同名,通常把只能由同一文件使用的函数和外部变量放

在一个文件中,在它们前面都static使之局部化,其他文件不能引用。

8.10.2外部函数

(1) 在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数

是外部函数,可供其他文件调用。

如函数首部可以写为

extern int fun (int a, int b)

这样,函数fun就可以为其他文件调用。C语言规定,如果在定义函数时省略

extern,则隐含为外部函数。本书前面所用的函数都是外部函数。

LAP

(2) 在需要调用此函数的文件中,用extern声明所用的函数是外部函数。

例8.22

有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删

去。

用外部函数实现。

file1.c (文件1)

main ()

{extern enter-string (char str [80]);

extern delete-strin g (char str [],char ch);

extern print-string(char str []);

//以上3行声明在本函数中将要调用的在其他文件中定义的3个函数

char c;

char str [80];

enter-string (str);

scanf ("%c",&c);

delete-string (str,c);

print-string (str);

file2.c (文件2)

#include

enter-string (char str [80])/ 定义外部函数enter-string*/

{gets (str);} / 读入字符串str*/

file3.c (文件3)

delete-string(charstr[],charch) // 定义外部函数delete-string

{int i,j;

for (i=j=0;str [i]!=′\0′;i++)

if (str [i]!=ch)

str [j++]=str [i];

str [j]=′\0′;

LAP

file4.c (文件4)

print-string (char str [])/ 定义外部函数print-string /

printf ("%s",str);

运行情况如下:

abcdefgc (输入str)

c (输入要删去的字符)

abdefg (输出已删去指定字符的字符串)

整个程序由4个文件组成。每个文件包含一个函数。主函数是主控函数,除声明

部分外,由4个函数调用语句组成。其中scanf是库函数,另外3个是用户自己

定义的函数。函数delete-string的作用是根据

给定的字符串str和要删除的字符ch,对str作删除处理。算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值