Sir what is troubling me is that ..somewhere it is mentioned that global are static bydefault that means they are available within a file...but somewhere it's mentioned that global variable have external linkage by default..if static is not mentioned.
Sir I'll be very helpful if you make me understand this concept.
The quote you posted does NOT say globals are static by default, it says just the opposite. "external linkage" means that if there are two *.c files, say A.c and B.c, a global variable declared in A.c can be used in B.c. In B.c you declare the variable as extern.
int MyGlobal = 123;
extern int MyhGlobal;