1: //storage_linkage_main1.cpp 2: //Goes with storage_linkage_aux1.cpp. Compile the two files 3: //separately and link the object files to produce an executable. 4: //Illustrates an (explicitly declared extern) integer variable n 5: //in the body of the main function, which is defined in another 6: //file, and an (implicitly extern) function DoItToN() declared 7: //in the global namespace but also defined in that other file. 9: #include <iostream> 10: using namespace std; 12: void DoItToN(); 14: int main() 15: { 16: extern int n; //This int variable is defined "elsewhere". 17: cout << "\nValue of n declared extern = " << n; 18: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 20: cout << endl; 22: DoItToN(); 23: cout << "After DoItToN returns, n = " << n; 24: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 25: } 27: /* 28: Questions: 29: 1. What effect will moving the first line of the body of main to 30: the global namepace of this file have on this program's output? 31: 2. What effect will placing the keyword "extern" in front of the 32: prototype of the DoItToN() function have on this program's output? 34: Answers: 35: 1. None. 36: 2. None. The function is "extern" by default. 37: */