This is not a problem to fix or something.Just want to know the behaviour
#include <stdio.h>
extern int var;
int main()
{
var = 10;
printf("%d ", var);
return 0;
}
Here we can see that var was defined as extern and inside the main() function var was given definition. But when the var was outputted it gave an error
undefined reference to
var.
Then where does the value 10 go? Will it go to extern var or it is stored in a garbage memory location?
So what exactly happens during compilation at line var =10 and the next line.
Compile Log:
Compilation error time: 0 memory: 2156 signal:0
/home/PpnviQ/ccRtZapf.o: In function `main':
prog.c:(.text.startup+0x13): undefined reference to `var'
collect2: error: ld returned 1 exit status