zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    645. Set Mismatch
    400. Nth Digit
    633. Sum of Square Numbers
    507. Perfect Number
    453. Minimum Moves to Equal Array Elements
    441. Arranging Coins
    Girls and Boys
    二分图
    Gap
    SZU-A22
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/6433705.html
Copyright © 2011-2022 走看看