PDA

Visualizza la versione completa : [C] Creazione .h


^Jack_Sparrow^
24-04-2004, 08:22
Sapete dirmi qualcosa sulla creazione dei ".h"???


Oggi la Prof. ha spiegato che nei header vanno messi solo i prototipi e dichiarazione di variabili!!! Ma l'implementazione???

Del tipo voglio richiamare la funz somma:



#include <stdio.h>

int main(){

int a, b, c;

c = somma(a, b);

return 0;
}


"somma" come deve essere dichiarata nell'header???

Se non ho capito male devo creare un altro .c!!!

Mi potete illuminare???

nik600
24-04-2004, 08:43
si!

infatti creerai un file funzioni.cc che fa riferimento all'header funzioni.h

poi dovrai compilare prima i singoli file

g++ -c main.cc
g++ -c funzioni.cc

questi ti creerà 2 file oggetto .o

ora li devi "linkare" quindi

g++ -o nome_eseguibile main.o oggetto.o

^Jack_Sparrow^
24-04-2004, 09:00
Grazie!

Ho letto da qualche parte che se ho un file tipo somma.c devo creare somma.h, e questo sarà incluso nel file dove compare il main.


riassumendo:

contenuto "somma.h"



int somma(int primo, int secondo);


contenuto "somma.c"



int somma(int primo, int secondo){
return primo + secondo;
}


contenuto "main.c"



#include "somma.h"

int main(){

int c;

c = somma(10, 1);

return 0;
}


o sbaglio???

nik600
24-04-2004, 09:07
giusto!

però ricordati di aggiungere

#include "somma.h"


in somma.c!!

^Jack_Sparrow^
24-04-2004, 09:10
non mi funge!!!

Non uso linux per compilare ma DevC++!!! Fa lo stesso???

nik600
24-04-2004, 09:13
mmmm

bisogna vedere come cerca di linkare...tu hai creato un nuovo progetto? e hai inserito i 3 files all'interno del progetto? c'è un comando "compila?" (non ho mai usato Devc++!! :bhò: )

:ciauz:

^Jack_Sparrow^
24-04-2004, 09:18
si c'è un tasto/comando "compila" che fa tutto!!!

Utilizzo il DevC++ dato che utilizza come compilatore il gcc!

Adesso provo ad andare sotto linux e vedo che succede!!! Faccio come hai detto tu!

kNemo
24-04-2004, 19:14
Scusate se mi intrometto....
Ma Cosa sono quelle direttive al pre-processore
che ci sono nelle librerie ???

#ifndef _LIBRERIA_H_
#define _LIBRERIA_H_

// Contenuto Librerie

#endif

^Jack_Sparrow^
25-04-2004, 08:08
mi hanno spiegato che servono per evitare di far compilare più volte la stessa libreria presente in piuù file!!!

Loading