Mostriamo ora come creare e linkare librerie di funzioni. Sarà capitato di dover creare un programma con funzioni definite all'interno dello stesso, o magari nell'header (cioè prima della funzione main). E' più utile invece creare una libreria di funzioni, in questo caso funz.C, e la sua libreria di header funz.h, e poi compilare tramite il makefile. Le ragioni sono le seguenti:

- Il programma è più ordinato
- E' possibile risalire a tutte le funzioni con semplicità e velocità
- Se si va a modificare il main non è necessario ricompilare anche tutte le funzioni, cosa che può comportare un aumento delle prestazioni significativo in caso di programmi con elevato numero di righe di codice.

Una bozza del programma presentato è la seguente:

#include "funz.h"
#include < math.h >
#include < iostream >

using namespace std;

int main() {

double a;
double funzione= funz_nel_file(a);

  cout << "Funzione = " << funzione << endl; 
  
return 0;
}

dove nel file funz.C è definita la funzione esattamente come sarebbe definita nel main o fuori dal main, nel programma principale, mentre nel file funz.h vi sono le seguenti righe:

#ifndef __FUNZIONI_H__
#define __FUNZIONI_H__

double funzione(double);

#endif // __FUNZIONI_H__


Cioè la definizione della funzione e la definizione del tipo di grandezze di cui ha bisogno (in questo caso, un double solo). Ora visualizziamo il makefile:

programma: programma.o funz.o
g++ -o programma programma.o funz.o

Compiliamo con make programma, eseguiamo con ./programma.x ed il gioco è fatto.







Categories: