#include // The global variable "counter" is defined and initialized // in the other source file (foo.c). Here, we are declaring // it, and forcing it to have external linkage (i.e., to // tell the compiler that it is defined in some other file) // by using the "extern" storage class specifier. // // By default, variables are assumed to have external linkage, // i.e., extern is default and strictly speaking not needed. // But, it is considered good practice to be explicit and // include it, since it makes the code much more readable. extern int counter; void bar() { counter++; printf("(bar): incremented counter is %d\n", counter); }