登录/注册

c语言extern

更多

在 C 语言中,extern 关键字用于声明(而非定义)一个具有外部链接(external linkage)的变量或函数,表示该标识符在其他文件中定义。主要用途如下:


核心作用

  1. 声明外部全局变量
    当多个源文件需要共享同一个全局变量时:

    • 一个文件中定义(分配内存)
      // file1.c
      int globalVar = 10;  // 实际定义(分配内存)
    • 其他文件中用 extern 声明(不分配内存)
      // file2.c
      extern int globalVar;  // 声明(告知编译器变量在其他地方定义)
      void printVar() {
       printf("%d", globalVar); // 正确访问 file1.c 中的 globalVar
      }
  2. 声明外部函数(通常可省略)
    函数的声明默认带有外部链接,extern 可写可不写:

    // utils.h
    extern void helper(); // 等效于 void helper();

关键规则


典型用法(最佳实践)

  1. 在头文件中声明.h 文件)

    // config.h
    #ifndef CONFIG_H
    #define CONFIG_H
    extern int MAX_SIZE; // 声明(其他文件可包含此头文件使用)
    #endif
  2. 在源文件中定义.c 文件)

    // config.c
    #include "config.h"
    int MAX_SIZE = 100; // 实际定义
  3. 在其他文件中使用

    // main.c
    #include "config.h"
    int main() {
       printf("%d", MAX_SIZE); // 输出 100
       return 0;
    }

对比 extern 和全局变量

场景 代码示例 效果
定义全局变量 int var; 分配内存(整个程序可见)
声明外部变量 extern int var; 引用其他文件的定义
错误:重复定义 多文件出现 int var; 链接错误

总结

合理使用 extern 能有效组织多文件项目,避免全局变量冲突!

请问C语言extern通常怎么使用?

C语言extern通常怎么使用?哪位大神指点一下。

2023-10-08 10:55:13

浅析C语言中的regiseter关键字

C语言中重要的关键字有很多,static const extern我们之前都讲过,还有一个在面试中出现的频率也比较高:register。

2023-08-25 17:10:27

C语言-内联函数、递归函数、指针函数

这篇文章介绍C语言的内联函数、递归函数、函数指针、指针函数、局部地址、const关键字、extern关键字等知识点;这些知识点在实际项目开发中非

2022-08-14 10:03:14

高质量程序设计指南之C++C语言

高质量程序设计指南之C++C语言

资料下载 ah此生不换 2022-01-07 11:46:11

DSP载波移相控制C语言源代码下载

DSP载波移相控制C语言源代码下载

资料下载 口沫横 2021-05-12 09:19:18

无线遥控频率计C语言源代码下载

无线遥控频率计C语言源代码下载

资料下载 有你幸福_28685181 2021-05-11 09:46:55

MATLAB语言C语言的区别资料下载

电子发烧友网为你提供MATLAB语言与C语言的区别资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、

资料下载 131594 2021-04-01 08:40:10

什么是C语言C语言有哪些优势及C语言的应用资料说明

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编

资料下载 佚名 2019-05-29 17:56:00

C语言中的extern

这与C++有什么关系呢? 看看__cplusplus(注意前面是两个下划线) 的名字你就应该知道它与C++有很大关系。__cplusplus是一个C

2022-04-02 16:03:23

C语言中的extern

在你的C语言代码中,不知能否看到类似下面的代码: 这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们的代码都是这样写的,从来没有因此碰到过什么麻烦啊~”。     你说的没错,如果你的头文件从来没有

2021-11-02 14:35:02

C语言代码中的extern

在你的C语言代码中,不知能否看到类似下面的代码: 这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们的代码都是这样写的,从来没有因此碰到过什么麻烦啊~”。 你说的没错,如果你的头文件从来没有被任何

2021-09-02 15:13:43

你真的知道C语言extern C有什么作用吗

我经常在C语言的头文件中看到下面的代码: #ifdef __cplusplus extern “

2021-08-17 09:35:35

介绍一下关键字extern的用法

学单片机C语言一定要熟悉关键字的用法,本文介绍一下关键字extern的用法。1、ext

2021-07-15 06:38:41

【视频】C语言知识免费视频教程-C语言关键字_extern-连载视频第9集(视频持续更新……)

教程第四集:C语言关键字-staticC语言教程第五集:C

2021-04-26 14:04:22

C语言externC" 是什么意思?

通常用于C++和C混合编程的时候,为了防止C++的编译器在编译C文件的时

2020-09-07 11:09:56

7天热门专题 换一换
相关标签