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;
The four sentences are declarations, however the first three sentences are also definitions.
Read here about the difference between declaration and definition.
auto, static and register are modifiers for the variable. Read de documentation about them.
extern is only declaration because you are telling the compiler that the definition of the variable or function is somewhere else - in another C
module -.
Hope it helps!