extern,外面的、外来的意思。那它有什么作用呢?举个例子:假设你在大街上看到一个黑皮肤绿眼睛红头发的美女(外星人?)或者帅哥。你的第一反应就是这人不是国产的。extern 就相当于他们的这些区别于中国人的特性。

extern 可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,下面的代码用到的这些变量或函数是外来的,不是本文件定义的,提示编译器遇到此变量和函数时在其他模块中寻找其定义。就好比在本文件中给这些外来的变量或函数带了顶帽子,告诉本文件中所有代码,这些家伙不是土著。

那你想想extern 修饰的变量或函数是定义还是声明?看列子:

  1. c 文件中定义;
  2. c 文件中用extern 修饰:
    int i = 10; extern int i;//写成i = 10;行吗?
    void fun(void) extern void fun(void);//两个void 可否省略?
    {
       //code
    }
  3. h 文件中定义;
  4. c 文件中用extern 修饰:
    int j = 1; extern double j;//这样行吗?为什么?
    int k = 2; j = 3.0;//这样行吗?为什么?

至于extern“C”的用法,一般认为属于C++的范畴,这里就先不讨论。当然关于extern的讨论还远没有结束,在指针与数组那一章,你还会和它亲密接触的。

C语言extern关键词—最会带帽子的关键字相关推荐

  1. 【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)

    目录 引言: 1. 关于变量 1.1 什么是变量 1.2 变量的定义与声明 1.3 为什么要定义变量 1.4 变量定义的本质 2. 关键字 2.1 最宽宏大量的关键字 - auto 2.1.1 局部变 ...

  2. c语言extern(c语言中文网)

    C编译器编译后的函数,为什么要加extern"C"? 若要混用C和C++的代码,则所有在C++中调用的C代码,必须放在externC{/*C代码*/}内 c语言中extern的意思 ...

  3. C语言 extern - C语言零基础入门教程

    目录 一.简介 二.extern 修饰变量 1.在单文件中使用 extern 2.在多文件中使用 extern 三.extern 修饰函数 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C+ ...

  4. C语言 extern “C” - C语言零基础入门教程

    目录 一.__cplusplus 简介 二.__cplusplus 使用 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.__cplu ...

  5. c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...

    c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...

  6. R语言使用lm函数构建带交互项的多元回归模型、使用step函数构建逐步回归模型筛选预测变量的最佳子集(step regression)

    R语言使用lm函数构建带交互项的多元回归模型.使用step函数构建逐步回归模型筛选预测变量的最佳子集(step regression) 目录

  7. c语言中的简单动画(带有源码)

    c语言中的简单动画(带有源码) 动画 1. 怎样实现动画 相信大家已经对动画的原理已经不陌生了.想要目标物体动起来,只需要逐个播放目标物体每一时刻位 置的图片.只要播放的速度足够快,人们就会在视觉上认 ...

  8. php输出熊猫图案,如何用CSS实现一只带帽子的大熊猫(附代码)

    本篇文章给大家带来的内容是关于如何用CSS实现一只带帽子的大熊猫(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 黑眼圈的大熊猫可谓非常可爱,今天就用CSS实现以下萌萌哒的大 ...

  9. c语言中的static和extern,C语言extern与static的用法,及extern “c

    C语言extern与static的用法,及extern "c " 一.c语言static与extern的用法 1.static和extern: 大工程下我们会碰到很多源文件. 文件 ...

最新文章

  1. 【怎样写代码】函数式编程 -- Lambda表达式(一):引出
  2. oracle行转列与列转行
  3. openSUSE-openOffice无法输入中文
  4. 艾伟:重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
  5. nginx小总结(五)
  6. 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.2 安装数据库软件)...
  7. 动手学CV-目标检测入门教程2:VOC数据集
  8. CCF201912-2 回收站选址
  9. 左手代码,右手带娃,还能发十几篇 paper,程序员女神是如何炼成的?
  10. 297 - Quadtrees
  11. 类别不平衡问题之评估指标
  12. ASCII、Unicode、GBK和UTF-8字符编码的区别联系(转载)
  13. codeigniter中base_url和site_url
  14. 常用win10优化工具(后续继续更新)
  15. 利用lasso回归建立预测模型并绘制列线图 二分类结局资料的lasso回归与列线图绘制
  16. 基于Android的减肥塑身平台
  17. 从其他地方复制过来的文字中间有空格怎么删除?
  18. Gerix Wifi Cracker破*wifi
  19. 计算机电脑整蛊图片,双击就蓝屏 男子愚人节整蛊怒砸笔记本
  20. FusionAccess桌面云

热门文章

  1. 【转】1.5异步编程:.NET4.X 数据并行
  2. Dynamics版本历史演进及Dynamics 365重要功能介绍
  3. 第二节:重写(new)、覆写(overwrite)、和重载(overload)
  4. php鼠标点击图片后换图片,鼠标滑过改变图片
  5. Python3 基础学习笔记 C07【函数】
  6. library的英语怎么读音_【英语角】———学习方法分享
  7. 【EOJ Monthly 2019.01 - E】唐纳德先生与假骰子(假概率问题)
  8. bash mysql count()_【MySQL】性能优化之 count(*) VS count(col)
  9. android滑动菜单图标,Android实现简单底部导航栏 Android仿微信滑动切换效果
  10. java 内部类私有成员 能访问,为什么外部Java类可以访问内部类私有成员?