Semplicemente usa le tue funzioni in C come se stessi programmando in C: includi il file header, e poi chiama la funzione. Ad es. in C++, questo programma si compilerà senza problemi:
#include <stdio.h>
#include <stdlib.h>
char buffer[1];
void foo (char *name)
{
FILE *f;
if ((f = fopen (name, "r")) == NULL) return;
fread (buffer, 1, 1, f);
fclose (f);
}
...
#ifdef __cplusplus
extern "C" {
#endif
/* definizioni C */
#ifdef __cplusplus
}
#endif
...
Quella frase extern "C" per l'appunto dice al compilatore che le dichiarazioni
seguenti sono di tipo C. Dopo aver indicato questo al compilatore, le definizioni C
del modulo nei programmi in C++ saranno utilizzabili come se fossimo in C.
Ndt: mancare quelle direttive nel file header del C in gcc provocherà
errori di riferimenti indefiniti nella fase di link. È buona norma,
anche quando si scrivono librerie o programmi in C che si vuole possano essere
utilizzabili anche in C++ includere quelle linee, che non hanno effetto sui
programmi in C. Le #ifdef __cplusplus servono per evitare errori
da parte dei compilatori che sono solo per il C e non conoscono la direttiva
extern "C"