• C语言中的extern


    extern:

    这个关键字真的比较恶心,在定义变量的时候,extern居然可以被省略(定义时,默认均省略);

    在声明变量的时候,extern必须加在变量前。

    所以有时候你搞不清楚是声明还是定义。:变量前有extern不一定就是声明,而变量前无extern就只能是定义。

    注:定义要为变量分配内存空间;而声明不需要为变量分配内存空间。

    (1)变量

    尤其是对于变量来说。
    extern int a;//声明一个全局变量a
    int a; //定义一个全局变量a

    extern int a =0 ;//定义一个全局变量a 并给初值。
    int a =0;//定义一个全局变量a,并给初值

    第四个 等于 第 三个,都是定义一个可以被外部使用的全局变量,并给初值。

    总结:

      对于变量:如果你想在本源文件(例如文件名A)中使用另一个源文件(例如文件名B)的变量,方法有两种:

      (1)在A文件中必须用extern声明在B文件中定义的变量(当然是全局变量)。

      (2)在A文件中添加B文件对应的头文件,当然这个头文件包含B文件中的变量声明,也即在这个头文件中必须用extern声明该变量,否则该变量又被定义一次。

      对于函数:如果你想在本源文件(例如文件名A)中使用另一个源文件(例如文件名B)的函数,方法有两种:

      (1)在A文件中用extern声明在B文件中定义的函数(也可以省略extern,只需要在A文件中出现B文件定义函数原型即可)

      (2)在A文件中添加B文件对应的头文件,当然这个头文件包含B文件中的函数原型,在头文件中函数可以不用加extern。

  • 相关阅读:
    JAVA基础知识-java文化基础和运行环境
    一个获得jdbc方式Connection的静态方法
    Hibernate学习笔记(二)
    JVM学习笔记
    chrome常用插件
    面向站长和网站管理员的Web缓存加速指南
    OFBiz进阶之环境搭建(eclipse)
    OFBiz之SVN下载地址
    OFBiz进阶之HelloWorld(一)创建热部署模块
    Sublime Text 3插件之SublimeTmpl:新建文件的模版插件
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/6433705.html
Copyright © 2020-2023  润新知