io invece ti consiglio di mettere le dichiarazioni extern nei .h, i prototipi e le definizioni nei .c. Ad esempio:
Codice PHP:
/*
* main.c
*/
/*
* Fast include trick
*/
#ifndef UHelloWorld_h
#include "UHelloWorld.h"
#endif
int main (void){
IGShowHelloWorld ();
return 0;
}
Codice PHP:
/*
* UHelloWorld.h
*/
#ifndef UHelloWorld_h
#define UHelloWorld_h
/*
* Fast include trick
*/
#ifndef UHelloWorld_h
#include "UHelloWorld.h"
#endif
/*
* Dichiarazione extern (che significa: dichiarata altrove)
*/
extern void IGShowHelloWorld (void);
#endif
Codice PHP:
/*
* UHelloWorld.c
*/
#include <stdio.h>
/*
* Fast include trick
*/
#ifndef UHelloWorld_h
#include "UHelloWorld.h"
#endif
/*
* Prototipo o dichiarazione
*/
void IGShowHelloWorld (void);
/*
* Definizione
*/
void IGShowHelloWorld (void){
(void) printf ("Hello World!\n");
}
Compilato e testato con:
Codice PHP:
i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5367)
Compilazione (zero errori, zero warning):
Codice PHP:
$ gcc -Wall -ansi -pedantic main.c UHelloWorld.c
output: