登录/注册

extern

更多

好的!以下是用中文对 extern 关键字的详细解释:

extern 的作用(主要用于 C/C++):

  1. 声明外部变量/函数

    • 当变量或函数在其他文件中定义时,用 extern 声明它,告诉编译器:“这个符号已在别处定义,此处直接使用即可,不要重复分配内存”。
    • 示例

      // File1.c
      int globalVar = 42; // 实际定义
      
      // File2.c
      extern int globalVar; // 声明(非定义)
      void printVar() {
       printf("%d", globalVar); // 正确链接到 File1.c 的 globalVar
      }
  2. 与头文件配合

    • 通常在 .h 头文件中用 extern 声明全局变量,在 .c 文件中进行定义,避免重复定义错误。

      // global.h
      extern int globalVar; // 声明(所有包含此头文件的文件共享此变量)
      
      // global.c
      #include "global.h"
      int globalVar = 100; // 实际定义(仅在此处分配内存)
  3. 指定外部链接(External Linkage)

    • 使符号(变量/函数)在编译后能被其他文件链接。不加 extern 的全局变量默认具有外部链接,但显式使用可增强可读性。

✨ 进阶用法注意事项:


⚠️ 常见错误:

extern int x; // 声明(正确)
extern int x = 10; //  ❌ 错误!extern 不允许同时定义变量(应去掉 extern 或赋值)

总结:

场景 用法
引用外部全局变量 extern int var;(无初始化)
引用外部函数 extern void func();
C++ 调用 C 库 extern "C" { ... }

如果您的疑问涉及具体代码场景,欢迎提供更多细节,我会为您进一步分析!

不同模块怎么共享sbit变量,extern不行吗?

不同模块怎么共享sbit变量,extern不行吗

2023-11-03 06:48:50

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

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

2023-10-08 10:55:13

请问extern "C" esp_err_t nvs_flash_erase(void),是什么意思?

我看程序中有 extern "C" esp_err_t nvs_flash_erase(void) ,这个语句 中的 “C”是什么意思?谢谢!

2023-02-17 06:45:10

51单片机——花样驱动LED灯1.1

__LED_H__#include "delay.h"extern void LED_ON(); //点亮8个LED灯常亮extern void LED_OFF(); //关闭8个L

资料下载 石玉兰 2021-11-23 17:06:18

C51+DHT11单总线通信协议的温湿度测量小项目的终结

;lt;delay_500ms.h>#include <usart.h>#include <dht11.h>extern unsigned char TH;ex

资料下载 佚名 2021-11-20 14:36:02

基于单片机的宠物定时喂食器设计

文末下载完整资料sbit DS1302CE=P0^0;sbit DS1302CK=P0^2;sbit DS1302IO=P0^1;extern bit DS18B20_Reset(void

资料下载 刘洋 2021-11-05 09:06:00

鸿蒙内核源码分析: 虚拟内存和物理内存是怎么管理的

有了上篇鸿蒙内核源码分析(内存概念篇)的基础,本篇讲内存管理部分,本章源码超级多,很烧脑,但笔者关键处都加了注释。废话不多说,开始吧。内存一开始就是一张白纸,这些extern就是给它画大界线的,从哪

资料下载 o_dream 2020-11-23 11:45:25

单片机C语言变量是如何定义的怎样进行赋值

在定义格式中除了数据类型和变量名表是必要的,其它都是可选项。存储种类有四种:自动(auto),外部(extern),静态(static)和寄存器(register),缺省类型为自动(auto)。

资料下载 旧念 2019-07-31 17:35:00

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

我经常在C语言的头文件中看到下面的代码: #ifdef __cplusplus extern “C” { #endif // all of your legacy C code here

2021-08-17 09:35:35

介绍一下关键字extern的用法

学单片机C语言一定要熟悉关键字的用法,本文介绍一下关键字extern的用法。1、extern的定义是:extern可以置于变量或者函数前,以标示

2021-07-15 06:38:41

extern有哪些用法

extern可以用来在其他模块中公用变量和函数。其用法如:例如:在a.c文件中定义一个变量unsigned int intA; intA = 0x00;在b.c中要操作这个变量,就在 b.c文件中

2021-07-15 06:28:24

嵌入式软件编程中const、static、extern和volatile的原理是什么?怎么使用?

嵌入式软件编程中const、static、extern和volatile的原理是什么?怎么使用?

2021-04-28 06:21:42

extern _ARMABI void srand(unsigned int /*seed*/)是什么?

srand(imginfo->h*imginfo->w);其中 extern _ARMABI void srand(unsigned int /*seed*/); 其中 #define

2020-07-26 08:00:29

为什么extern void HalUARTClose ( uint8 port ); 这个函数不能调用?

如题所述,关于串口方面的宏已打开,串口也可以用了,只是调用extern void HalUARTClose ( uint8 port );这个函数时编译会出错,如下所示:Error[e46

2019-09-25 14:14:39

请问AD7606中extern tContext sContext对应的数据放在哪?

我想问一下,在EMIF_AD7606v2中extern tContext sContext中的&context对应的数据放在哪?

2019-08-09 06:52:44
7天热门专题 换一换
相关标签