【嵌入式开发】extern关键字的用法

【嵌入式开发】extern关键字的用法

在C语言中,extern关键字用于声明全局变量或函数,它有以下几个主要用途:

  1. 声明全局变量
    extern关键字用于在一个文件中声明一个在另一个文件中定义的全局变量。这允许在多个文件中共享全局变量。

    // 在 file1.c 中定义全局变量
    int sharedVar = 10;
    
    // 在 file2.c 中声明同一个全局变量
    extern int sharedVar;
    
  2. 声明函数
    类似于全局变量,extern关键字也用于在一个文件中声明在另一个文件中定义的函数。这允许在多个文件中调用同一个函数。

    // 在 file1.c 中定义函数
    void sharedFunction() {
        // 函数体
    }
    
    // 在 file2.c 中声明同一个函数
    extern void sharedFunction();
    
  3. 指示链接器
    extern关键字告诉链接器,所声明的变量或函数的定义在程序的其他地方。链接器会在程序的多个翻译单元(通常是多个源文件)中寻找这些定义。

  4. 避免重复定义
    在多个文件中使用extern关键字声明同一个全局变量或函数,可以避免在每个文件中都定义它们,从而防止重复定义的错误。

  5. 模块化编程
    extern关键字支持模块化编程,允许将程序分解为多个模块,每个模块可以独立编译,然后在链接时组合在一起。

  6. 头文件中的使用
    通常在头文件中使用extern关键字来声明全局变量,这样包含头文件的源文件就可以访问这些变量,而不需要在每个源文件中都定义它们。

    // 在 shared.h 头文件中
    extern int sharedVar;
    
    // 在某个源文件中
    #include "shared.h"
    int sharedVar = 10; // 定义全局变量
    
  7. 函数原型
    在头文件中使用extern关键字来提供函数原型,这有助于在编译时进行类型检查。

    // 在 shared.h 头文件中
    extern void sharedFunction(void);
    
    // 在某个源文件中
    #include "shared.h"
    void sharedFunction(void) {
        // 函数体
    }
    

使用extern关键字可以有效地管理程序中不同模块之间的变量和函数的可见性和访问权限,是实现程序模块化的重要手段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘猫.exe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值