函数和链接性

和变量一样,函数也有链接性,虽然可选择的范围比变量小。C++不予许在一个函数中定义另一个函数,因此所有函数的持续性都是静态的,即在整个程序执行期间都一直存在。

(1)外部链接性

在默认情况下,函数的链接性为外部的,即可以在文件之间共享。

(2)内部链接性

还可以使用关键字static将函数的链接性设置为内部的,使之只能在一个文件中使用。必须同时在原型和函数定义中都使用static关键字:

static int private(double x);
...
static int private(double x)
{
...
}
这意味着该函数只在该文件中可见,还意味着可以在其他文件中定义同名的函数。

在定义静态函数的文件中,静态函数将覆盖外部定义,因此即使在外部定义了同名函数,该文件仍将使用静态函数。


单定义规则也适用于非内联函数,因此对于每个非内联函数,程序只能包含一个定义。对于链接性为外部的函数来说,这意味着在多文件程序中,只能有一个文件包含该函数定义,但使用该函数的每个文件都应该包含其函数原型。

内联函数不受单定义规则的约束,这允许程序员能够将内联函数的定义放在头文件中。这样,包含了头文件的每个文件都有内联函数的定义。然而,C++要求同一个函数的所有内联定义都必须相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值