#include using namespace std; int default_global_vbl = 1; static int static_global_vbl = 2; extern int extern_global_vbl; // to initialize here wouldn't make sense void default_fn (); extern void extern_fn (); static void static_fn (); //******************************************************* int main() { cout << "default_global_vbl= " << default_global_vbl << endl; cout << "static_global_vbl = " << static_global_vbl << endl; cout << "extern_global_vbl = " << extern_global_vbl << endl << endl; default_global_vbl = 4; static_global_vbl = 5; extern_global_vbl = 6; cout << "default_global_vbl= " << default_global_vbl << endl; cout << "static_global_vbl = " << static_global_vbl << endl; cout << "extern_global_vbl = " << extern_global_vbl << endl << endl; static_fn (); extern_fn (); default_fn (); return 0; } //******************************************************* // this function must be defined here because its name will not be // exported to linker void static_fn() { cout << "I am in static_fn" << endl; cout << "default_global_vbl= " << default_global_vbl << endl; cout << "static_global_vbl = " << static_global_vbl << endl; cout << "extern_global_vbl = " << extern_global_vbl << endl << endl; }