Originariamente inviato da XWolverineX
Bhe è possibile comunque dichiarare funzioni e variabili in un file header, a patto che ci sia un sistema ben definito di header che eviti degli autoinclude.
Certo ... ma non ha molto senso e infatti non lo fa nessuno.

Originariamente inviato da XWolverineX
La parola chiave extern e le dichiarazioni anticipate servono proprio a questo.
Un modo corretto di gestire la cosa è il seguente:

mioheader.h
codice:
#ifndef MIOHEADER_H
#define MIOHEADER_H

extern int mioint;
extern void prova (void);

#endif
sorgente1.c
codice:
#include <stdio.h>
#include "mioheader.h"

int main (void)
{
    printf ("%d\n", mioint);

    prova ();

    return 0;
}
sorgente2.c
codice:
int mioint;

void prova (void)
{
}