An interesting "issue", when more than one external name can be taken part in the linking. Also be care with the left-to-write searching method of linkers.
// a.cpp
#include <iostream>
using namespace std;
extern int g();
extern int f();
int main()
{
cout << f( ) << endl;
return 0;
}
int g()
{
return 2;
}
////////////////////////////////
// b.cpp
int g()
{
return 1;
}
int f()
{
return g();
}