Global objects also have distinct declarative and definitive forms. A definition may be accompanied by an initialiser, e.g.:

int globval = 34; /* initialized */
int another;      /* initialized with 0 */

…while a declaration should not have an initialiser, and should be preceded by extern:

extern int globval;
extern int another;

(extern can also appear before a function declaration, but it is optional.)