While I was reading the answers of Use of 'extern' keyword while defining the variable
One of the user answered these way
 extern int a;       //  not a definition 
 extern int a = 42;  //  definition 
I was expecting both are not definitions but declarations. I was thinking Both statements says that the variable is defined outside the function and we have to use extern keyword to use it. is this a mistake by him or is it really a definition ? I know that
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 
but these statement
extern int a = 42; // user said its a definition and now i got  confused
Please clear me with these.
 
     
     
     
     
    