Alebo si daj do google slova "mix C and C++", alebo citaj napr. http://msdn.microsoft.com/en-US/library/0603949d%2 8v=VS.80%29.aspx, alebo si najdi calling convention pre C++ a C (a trebars aj pascal, ptz napr. cele WinAPI ma pascal calling convention a neni to jedno).
Rozdiel je v tom co prekladac musi urobit pred a po volani funkcie, neni to jedno. Z toho dovodu pri linkovani je rozlisovana konvencia, a funkciu s nespravnou konvenciou to vobec nenajde (pri linkovani nazov funkcie obsahuje aj dalsie potrebne informacie, takze linker nehlada len "test" ale vpodtste nieco ako "_test0IUGZFW" apod. prekladace si tam davaju aj potrebne informacie o tom jak je nutne tu fciu volat, ptz keby si volal tu fciu inac alebo s inym mnozstvom parametrov, tak by ti ten program na tom mieste dokonale skapal. Preto musis zadat aj tvojmu kompileru programu v programe spravnu konvenciu, s akou bola kompilovana kniznica.