Modulo utile

//interfaccia del modulo: file utile.h

/*specifica della funzione scambia*/
void scambia(int *x, int *y);

//dichiarazione di altre funzioni..

//cliente: può usare le risorse e i servizi esportati dal modulo
//implementazione del modulo: file utile.c

/*commenti su progettazione e realizzazione della funzione scambia*/
void scambia(int *x, int *y)
{
	int temp = *x;
	*x = *y;
	*y = temp;
}

//definizione altre funzioni..

Modulo vettore

//file vettore.h

void input_array(int a[], int n);
void output_array(int a[], int n);
void ordina_array(int a[], int n);
int ricerca_array(int a[], int n, int elem);
int minimo_array(int a[], int n);
..
//file vettore.c

#include <stdio.h>
#include "utile.h" //contiene funzione scambia
int minimo_i(int a[], int i, int n); //dichiarazione locale

void input_array(int a[], int n) {..}
void output_array(int a[], int n) {..}
void ordina_array(int a[], int n) {..}
int ricerca_array(int a[], int n, int elem) {..}
int minimo_array(int a[], int n) {..}
int minimo_i(int a[]m, int i, int n) {..} //usata da ordina_array
..

Programma principale

//file ordina_array.c

#include <stdio.h>
#include "vettore.h"
#define MAXELEM 100

int main() {..}

//modulo client del modulo vettore