De External Variables Wiki:Declaración o definición en C
Si ni la palabra clave extern ni un valor de inicialización están presentes, la declaración puede ser o bien una declaración o una definición. Depende del compilador analizar los módulos del programa y decidir.
I no fue capaz de agarrar completamente el significado de esta afirmación con respecto a C. Por ejemplo, implica que:
int i;
no es necesariamente una declaración (como he estado asumiendo hasta ahora), pero también podría ser una definición (por definición de Definición & Declaración en la misma página web, sin juegos de palabras destinados)
En pocas palabras, es la declaración anterior: a. solo una declaración, o b. declaración + definición?
Referencia: Variable declaration and definition
Resumen de las respuestas recibidas:
Declaration Definition Tentative Definition Initialized int i; (inside a block) Yes Yes No No int i=5; (inside a block) Yes Yes No Yes(to 5) int i; (otherwise) Yes No Yes Yes(to 0) extern int i; Yes No No No All definitions are declarations but not vice-versa.
Sin embargo, es una buena idea tener en cuenta que no todas las declaraciones son definiciones. –