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.)