Prev Next Up Title Contents Index

C- funktioiden käyttö

C++ nimeää funktiot eri tavalla kuin C- kieli (vrt. overloading). Esimerkiksi jos C- kielellä on kirjoitettu funktio tulosta, on sen nimi linkitysvaiheessa _tulosta (alleviiva nimen edessä).

Borland C++ 3.1 nimeäisi funktioita seuraavasti (Microsoft hieman erilailla):

	Funktion protoyyppi                          nimi linkitysvaiheessa
	----------------------------------------------------------------------
	void tulosta(int i,int j)                        tulosta$qii 
	int  tulosta(double d,int tila=5,int desi=2)     tulosta$qdii
	void tulosta(char near *s,int tila=1)            tulosta$qpzci
	void tulosta(char far *s,int tila=1)             tulosta$qnzci
	

Kuva . Funktioiden nimeäminen

Jos C++ ohjelmaan halutaan linkittää C- kielellä kirjoitettuja ja käännettyjä funktioita, pitää niiden prototyypit esitellä:
	extern "C" void tulosta(int i);
Jos C- kirjastolle on valmis include-tiedosto tulosteet.h, missä on kaikkien kirjaston funktioiden prototyypit, on tietysti turha lähteä kirjoittamaan prototyyppejä uudelleen, koska voidaan käyttää C++:ssa muotoa:
	extern "C" {
	#include "tulosteet.h"
	}

Mikäli aliohjelmien lähdekoodi (source) on käytettävissä, kannattaa ne tietenkin kääntää itse C++:lla, jolloin nimeämisvaikeuksista ei tarvitse välittää.


Prev Next Up Title Contents Index