extern int a之间的区别; extern int a = 42;
问题描述:
虽然我读的Use of 'extern' keyword while defining the variableextern int a之间的区别; extern int a = 42;
一个用户的答案回答了这些方式
extern int a; // not a definition
extern int a = 42; // definition
我期待双方都没有定义,但声明。我在想这两个声明都说变量是在函数外部定义的,我们必须使用extern关键字来使用它。这是他的错误还是它真的是一个定义? 我知道
extern int a; // variable is already defined but its outside the function
extern int a=42 ; //I guess a variable is assigned a value but not a definition
但这些声明
extern int a = 42; // user said its a definition and now i got confused
请清除我这些。
答
extern int a;
是一个声明。它不分配空间来存储a。
extern int a = 42;
是一个定义。它分配空间来存储int值和分配给它42
答
这里的变量,其中它的定义是在全局声明节
extern int a; //This is a declaration
extern int a=42; //This is a definition
+2
!是啊! – UmNyobe
的声明规定外main()函数内声明的价值正在讨论的链接问题都假定为文件作用域声明,而不是函数作用域。 –