1.谨记:

声明可以多次,定义只能一次。

2.函数

声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern。但是引用的时候一样需要声明的,方法1:声明放在头文件,#include其头文件就好。

或者

方法2:  extern 方法 ,extern void delayms这句在调用文件中使用,表示引用全局函数delayms()。

3.全局变量(包括结构体变量)

在外部使用声明时,extern关键字是必须的。

extern int a;//声明一个全局变量a

在头文件extern int a,然后被其他文件#include就好

不能在头文件定义,再被其他文件#include,因为引用头文件是全部引用过去,#include命令就是原封不同的把头文件中的内容搬到#include的位置。如果多次被其他文件#include,会有重复定义的错误:

Error: L6200E: Symbol key multiply defined (by common.o and main.o).

4.局部变量

声明不能有extern的修饰,且局部变量在运行时才在堆栈部分分配内存。

参考:

一文彻底搞懂extern用法_木头linux的博客-CSDN博客_extern用法

extern使用方法总结!_worthsen的博客-CSDN博客_extern

C语言extern详解必懂_我想变成五条悟的博客-CSDN博客_extern在c语言中是什么意思

extern使用方法总结!_csdnwei的博客-CSDN博客_extern

全局变量

在所有函数外部(main 函数外部)定义的变量称为全局变量(Global Variable),

作用域:从定义位置到整个源程序结尾。

局部变量

定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数的内部就是无效的,再使用就会报错。

分类

1.main函数内部。作用域:从定义位置到main函数结尾。

2.子函数内部。作用域:从定义位置到子函数函数结尾。

3.函数形参定义。作用域:整个函数。

extern使用方法总结相关推荐

  1. [转]extern使用方法总结

    Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义.谨记:声明可以多次,定义只能一次.在使用中,要形成一种风格. 函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是 ...

  2. extern 使用方法具体解释

    在C语言中,修饰符extern用在变量或者函数的声明前,用来说明"此变量/函数是在别处定义的.要在此处引用".(extern能够置于变量或者函数前,以标示变量或者函数的定义在别的文 ...

  3. extern使用方法总结!

    一.问题 Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义? 二.详解 1.函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern.但是引用的时候一样需要 ...

  4. 转【C#调用DLL的几种方法,包括C#调用C\C++\C#DLL】

    C#中dll调用方法 一.      DLL与应用程序 动态链接库(也称为DLL,即为"Dynamic Link Library"的缩写)是Microsoft Windows最重要 ...

  5. C#调用DLL的几种方法

    c#中dll调用方法 一. DLL与应用程序 动态链接库(也称为DLL,即为"Dynamic Link Library"的缩写)是Microsoft Windows最重要的组成要素 ...

  6. C# 使用DllImport 调用 native DLL的方法

    若要声明一个方法使其具有来自 DLL 导出的实现,请执行下列操作: 使用 C# 关键字 static 和 extern 声明方法. 将 DllImport 属性附加到该方法.DllImport 属性允 ...

  7. C#直接使用DllImport外部Dll的方法

    C#.Net调用基本格式: [DLLImport("DLL文件路径")] 修饰符 extern 返回值类型 方法名称(参数列表) 如: [csharp] view plain co ...

  8. 在 C# 中通过 P/Invoke 调用Win32 DLL

    ,.NET Framework 1.0 或 1.1 版类库中存在任何 Windows 所没有的功能限制都不足为怪.毕竟,32 位的 Windows(不管何种版本)是一个成熟的操作系统,为广大客户服务了 ...

  9. .NET笔试题集(一)

    题目来源于传智播客和各大互联网,复习.重新整理贴出来. 1.简述 private. protected. public. internal.protected internal 访问修饰符和访问权限 ...

最新文章

  1. MySQL数据库实用教程考核_《MySQL数据库实用教程》郑明秋,蒙连超,赵海侠【pdf】...
  2. 【Dual-Path-RNN-Pytorch源码分析】model的架构图
  3. 麦肯锡发布调研,揭开“那些引入人工智能的企业都怎么了 ”
  4. Java多线程1:进程与线程
  5. 状态压缩 之 UVA 10944 - Nuts for nuts..
  6. ios uiview 如何刷新_ios-如何在Swift中刷新imageview而无需重新加载页面?
  7. Docker+Teamcity+Maven+SVN搭建持续集成环境
  8. openstack 虚拟机如何修改ip地址
  9. composer QA
  10. 使用GDAL生产jpg格式的快视图(拇指图)
  11. 使用HP优盘启动盘格式化工具制作DOS7.1启动盘,U盘.SD.TF卡均可用
  12. 计算机中的CPU主频是单位,计算机CPU主频单位是MHz和GHz,他们之间怎么换算?
  13. QT如何实现二级下拉菜单(Combo box)
  14. 使用Python读取Windows注册表
  15. 【软件测试】——软件测试经验总结
  16. 上位机使用python/matlab通过网线VISA/SCPI编程远程控制旧版A.06.04.32的安捷伦agilent矢量网络分析仪(VNA)采集S21参数
  17. python 实现贷款计算
  18. OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
  19. SSM框架与Springboot框架的区别
  20. Android客户端Monkey稳定性测试

热门文章

  1. 抖音seo源码.视频剪辑功能开发(一)
  2. 【IOC框架】分析与理解
  3. H5新标签Html5新标签解释及用法
  4. java 可变参数方法不支持多个可变参数以及多种类型的替代方法
  5. 更标准的 vue 目录结构
  6. JSON JSON Schema
  7. 模拟斗地主游戏java编程_java实现模仿斗地主发牌
  8. LOJ #6672. 「XXOI 2019」惠和惠惠和惠惠惠(生成函数,整式递推)
  9. osgb转json_超实用:一篇文章带你了解市面上主流通用的3D模型格式
  10. 云原生 DevOps 的5步升级路径