extern变量是如何定义的?

这个问题在这里已经有了答案:

  • 定义和声明有什么区别? 25个答案
  • 如何使用extern在源文件之间共享变量? 15个答案

  • extern int i
    

    ...是一个变量声明,因为它只告诉编译器“存在一个名为i的变量,但它定义在其他地方”。

    int i
    

    ...是一个变量定义,因为它告诉编译器创建实际变量。


    关键字extern用于声明外部变量,因此该书是正确的。

    有一个例外,如果添加了一个初始化程序,那么这是一个定义:

    extern int i = 42;
    

    声明:刚声明的变量

    Ex: int i; 
    

    定义:变量declaration+its initialization用值declaration+its initialization

    Ex: int i=10;
    

    在你的情况

    extern int i;// is a declaration    
    //because you did not initialize value to i here.
    

    假设j是全局变量。 那么它在声明时用ZERO初始化。
    这里declaration+initialization =definition

    int j; //definition  
    

    如果j是本地的,那么它只是声明。

    链接地址: http://www.djcxy.com/p/40631.html

    上一篇: How are extern variables defined?

    下一篇: understanding of extern storage class