extern类型的函数

本文介绍在C语言中如何实现不同源文件间的函数调用。通过使用extern关键字声明函数,可以在一个源文件中调用另一个源文件中定义的函数。此外,还介绍了将函数声明放在共同的头文件中的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 如果有两个源文件 a.c 和 b.c ,如果 a.c 中想使用 b.c 中定义的函数,可以在 a.c 中声明 extern func(); 
  1. 或者是在 a.c 和 b.c 共同的头文件 common.h 中将 b.c 中定义的函数声明为 extern func(); 
  1. 使用上面第一种方法:




编译并运行得到:gcc a.c b.c -o test


首先我们明白的是,这里不需要头文件,仅仅是两个源文件,也可以做到在 a.c 中访问到 b.c 中的函数定义,是因为c中是每个源文件都是单独编译的,a.c 和 b.c 都编译生成了目标文件,然后是链接,由于在 a.c 中声明了 func 是 extern 的,所以在链接的时候,a.c 的目标文件去链接的时候会链接到 b.c 编译生成的目标文件中的 func 函数处。
  1. 当然将该函数可以声明到 a.c 和 b.c 共同的头文件中
  1. 在头文件中声明的全局变量一定要加 extern ,而全局函数并不需要一定要加 extern 
        6. 为什么头文件中只能声明全局变量而不能定义,看下面的链接:
https://my.oschina.net/mavericsoung/blog/123469
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值