`extern` is a storage class in C. How exactly does it work? The output of the code given below is 20. How is this the output?

```
#include <stdio.h>

int main()
{
    extern int a;
    printf("%d", a);
    return 0;
}
int a=20;

```