对宣言,定义感到困惑

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

  • 变量声明vs定义3个答案
  • 定义和声明有什么区别? 25个答案

  • int a; 既是一个声明(该变量可以被使用)和一个定义(它有它自己的内存),但如果它是一个自动变量,它不会被初始化。

    extern int a; 是一个单纯的声明,不是一个定义。


    从这里:

    大多数时候,当你声明一个变量时,你也提供了这个定义。 确切地说,定义一个变量意味着什么? 这意味着您要告诉编译器在哪里为该变量创建存储。 例如,如果你写:

    int x;
    int main()
    {
        x = 3;
    }
    

    行int x; 既声明和定义变量; 它有效地说:“创建一个名为x的变量,类型为int。此外,变量的存储是它是一个在与此源文件关联的目标文件中定义的全局变量

    这是来自网站的一部分,与您的问题更相关,请参阅以下链接,以进一步澄清您的错误观念,希望能够清除http://www.cprogramming.com/declare_vs_define.html

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

    上一篇: Confused about declaration, definition

    下一篇: Declare And Define