I know that 'extern' means that it's declaration and definition are not available in the same source files. However i don't see any significant use of it.
Lets assume i have three classes Employee, Department and Library.
lets say we have something like this in Library class
extern NSString *abc;
we use it something like this in Department class.
Department.h
NSString *abc;
Department.m
abc = @"abcdefg";
and something like this is Employee class.
Employee.m
NSString *abc = @"xyz";
When we look at classes Employee and Department they look just like normal variable declarations and definitions.
So, My question is what is it's special power?