当前位置: 首页 > news >正文

函数在头文件声明函数,为啥要加extern关键字?

在C语言中,函数声明前的 extern 关键字实际上是可选的,对于函数来说,加不加 extern 效果是一样的。

头文件

extern void func1(void);

c文件

void func1(void)
{/*code*/
}

为什么这里要加 extern 关键字?

  1. 明确意图:使用 extern 可以明确表示这些函数是在其他地方定义的,需要在链接时从其他目标文件中找到它们的定义。

  2. 与变量声明保持一致:在头文件中,对于全局变量通常必须使用 extern 来声明(定义在源文件中),为了保持一致性,函数声明也使用 extern

  3. 代码可读性:让代码阅读者更清楚地知道这些函数是从外部引入的接口。

  4. 编码规范:可能是项目的编码规范要求所有外部函数都显式使用 extern 关键字。

C语言中的函数声明规则

// 这两种声明是等价的:
extern void func1(void);  // 显式使用 extern
void func2(void);         // 隐式 extern(默认就是 extern)

对于函数来说,无论是否使用 extern,编译器都会将其视为外部函数声明。

对比变量声明

与函数不同,变量声明必须使用 extern 才能表示声明而非定义:

// 变量的情况:
extern int global_var;    // 声明(正确)
int global_var;           // 定义(会在当前文件分配存储空间)

总结

在这个头文件中使用 extern 主要是为了:

  • 代码风格统一(与变量声明保持一致)
  • 提高代码可读性
  • 明确表达设计意图
  • 遵循项目编码规范

虽然对于函数来说 extern 是可选的,但加上它并没有害处,还能让代码意图更加清晰。

http://www.lryc.cn/news/605572.html

相关文章:

  • c++:模板的应用
  • 在幸狐RV1106板子上用gcc14.2本地编译安装samba-4.22.3服务器,并且支持XP系统访问共享文件夹
  • js防抖、节流和扁平化实现
  • UI测试平台TestComplete如何实现从Git到Jenkins的持续测试
  • 零基础构建MCP服务器:TypeScript/Python双语言实战指南
  • 软考中级-信息安全工程师-每日一学(1)
  • Mockito:Java单元测试Mock框架
  • Effective C++ 条款13:以对象管理资源
  • 防火墙安全实验
  • 使用python写一套完整的智能体小程序
  • 推客小程序商业模型设计:合规分佣体系×盈利模式×LTV提升策略
  • FFmpegHandler 功能解析,C语言程序化设计与C++面向对象设计的核心差异
  • 打车小程序 app 系统架构分析
  • Mac 系统下安装 nvm
  • 旧物重生,交易有温度——旧物回收二手交易小程序,让生活更美好
  • 直播小程序 app 系统架构分析
  • 相亲小程序安全与隐私系统模块搭建
  • 计算机网络:什么是光猫
  • C语言与C++、Java、Python等主流编程语言存在显著差异
  • 医保购药APP源码开发新趋势:对接电子处方与互联网医院
  • SpringMVC核心原理与实战指南
  • 汇编语言中的溢出(Overflow)与下溢(Underflow)
  • TransportClient详细说一说
  • 【CanMV K230】通解教程
  • Java高级用法之回调函数
  • Odoo:免费开源的医疗器械行业解决方案
  • 网安学习NO.20
  • Java实习面试记录
  • Linux移动大量文件命令
  • 递归混合架构(MoR)在医疗领域的发展应用能力探析