【C语言】函数定义时前加static 作用

C语言中函数定义时前加static 作用

1.作用

函数中加“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。

2.好处

使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。

3.根本原因

根本原因是C语言中同一个工程中不能有同名函数。

定义静态函数的好处:

  1. 其他文件中可以定义相同名字的函数,不会发生冲突
  2. 静态函数不能被工程内其他文件所用。

拓展:关于内联函数

内联函数是在函数的前面加“inline”,意思是将这个函数的二进制代码直接插到程序中调用它的地方,让编译器不用函数名跳转的方式来实现(原因是这样跳来跳去比较花费时间)。

这种做法类似于宏代替。

不好的地方就是如果此函数被调用得比较频繁的话,可能很多地方都要占用空间,而不是跳过去执行只需要一个地方有这段代码就行,所以说这样做我们是用“空间”来换取了“时间”。

关于内联函数必须加static的问题:

内联函数一般都写成static inline,原因是内联函数一般要写在.h文件中,进行函数声明。

这个.h文件的原则是不写函数而只写函数名,现在写了函数了,很多.c文件可能都会包含这个.h文件。如果不写static,编译的时候就会在linking过程中编译不过,其实意思就是同一个工程中不能有相同的函数名。

参考资料:http://blog.chinaunix.net/uid-28994163-id-4333705.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值