Why is creating a variable using 'extern' a declaration and not a definition?
问题 I came across the following problem while reading ...just cant get the logic behind this. auto int c; static int c; register int c; extern int c; It is given that the first three are definition and last one is declaration ..how come ? 回答1: The last one with extern does not define storage for c . It merely indicates that c exists somewhere and the linker should be able to resolve it to some global c defined elsewhere. If you compiled and linked a single .c file and tried to use the last c you