A declaration specifies the attributes (such as the data type) of a set of identifiers. If the declaration also causes storage to be allocated, it is called a definition.
In the opend.h header, we declare the three global variables with the extern storage class. These declarations do not cause storage to be allocated for the variables. In the main.c file, we define the three global variables. Sometimes, we'll also initialize a global variable when we define it, but we typically let the C default apply.