Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Abbiamo provato il nuovo HUAWEI Pura 80 Pro. Parliamo di uno smartphone che è un vero capolavoro di fotografia mobile, grazie ad un comparto completo in tutto e per tutto, In questa colorazione ci è piaciuto molto, ma i limiti hardware e software, seppur in netto miglioramento, ci sono ancora. Ma HUAWEI ha fatto davvero passi da gigante per questa nuova serie Pura 80. Buona anche l'autonomia e soprattutto la ricarica rapida sia cablata che wireless, velocissima.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-06-2009, 18:18   #1
nlazza87
Member
 
L'Avatar di nlazza87
 
Iscritto dal: Jun 2006
Messaggi: 52
[C] inclusione file

Salve, sto creando un piccolo programma in C ma ho problemi con l'inclusione dei file header.
Ho creato il file "fixed.h" in cui definisco una struct e inserisco l'interfaccia dei metodi, un file "fixed.c" in cui implemento i metodi del file header ed un programma di test in cui è presente il main.
Sia sul file .c che nel file di test ho messo: #include "fixed.h" ma quando compilo il file di test mi viene detto che i metodi che uso nel main non sono definti.
Per caso dimentico qualcosa?
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD
nlazza87 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2009, 18:21   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
a parole sembra tutto giusto, posta in piccolo esempio dei 3 file
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2009, 21:35   #3
nlazza87
Member
 
L'Avatar di nlazza87
 
Iscritto dal: Jun 2006
Messaggi: 52
Fixed.h

#define F 8
#include <stdio.h>
typedef unsigned int FixedPoint;

FixedPoint fixpoSum(FixedPoint a, FixedPoint b);

....altri metodi....

Fixed.c

#include <stdio.h>
#include "Fixed.h"
#include <math.h>

FixedPoint fixpoSum(FixedPoint a, FixedPoint b){
return a+b;
}

...altri metodi implementati....
Test.c

#include <stdio.h>
#include "Fixed.h"

int main(){
FILE * ptr;
FixedPoint a;
a=fixpoSum(5,5);
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD
nlazza87 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2009, 21:52   #4
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
come compili i sorgenti? ah è buona cosa usare gli include guard:

http://it.wikipedia.org/wiki/Include_guard
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2009, 15:06   #5
nlazza87
Member
 
L'Avatar di nlazza87
 
Iscritto dal: Jun 2006
Messaggi: 52
Avevo già provato ad inserire #ifndef FIXED_H_ ed #endif ma non cambia nulla.

Per quanto riguarda la compilazione:
gcc -c fixed.h
gcc -c fixed.c
gcc -c test.c
gcc -o test test.c -lm

-lm perchè uso la libreria math.h
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD
nlazza87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2009, 15:41   #6
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
Quote:
Originariamente inviato da nlazza87 Guarda i messaggi
Avevo già provato ad inserire #ifndef FIXED_H_ ed #endif ma non cambia nulla.

Per quanto riguarda la compilazione:
gcc -c fixed.h
gcc -c fixed.c
gcc -c test.c
gcc -o test test.c -lm

-lm perchè uso la libreria math.h
il problema è nella compilazione, compilare un .h non ha senso, e in fase finale compili solamente test.c per creare l'eseguibile senza linkare fixed.
devi fare così

gcc -c -o fixed.o fixed.c
gcc -c -o test.o test.c
gcc -o test test.o fixed.o -lm

in questo modo crei gli object file per ogni file compilato e poi li linki insieme nell'eseguibile "test".

in questi casi utilizzare un makefile semplifica notevolmente le cose, sopratutto se nel progetto aggiungerai altri file da compilare.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2009, 15:51   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
oltre all'utile consiglio sugli include guard, non è necessario che fixed.c includa fixed.h. per il resto credo che ci sia qualcosa che non va nel modo in cui compili (stai compilando a mano o con qualche ide?)
Sì, ma non ha detto che si limita a solamente quel metodo. E' generalmente invece utile includere il .h per non dover preoccuparsi dell'ordine in cui si implementano le funzioni o se ci sono chiamate incrociate.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2009, 19:23   #8
nlazza87
Member
 
L'Avatar di nlazza87
 
Iscritto dal: Jun 2006
Messaggi: 52
Quote:
Originariamente inviato da vizzz Guarda i messaggi
il problema è nella compilazione, compilare un .h non ha senso, e in fase finale compili solamente test.c per creare l'eseguibile senza linkare fixed.
devi fare così

gcc -c -o fixed.o fixed.c
gcc -c -o test.o test.c
gcc -o test test.o fixed.o -lm

in questo modo crei gli object file per ogni file compilato e poi li linki insieme nell'eseguibile "test".

in questi casi utilizzare un makefile semplifica notevolmente le cose, sopratutto se nel progetto aggiungerai altri file da compilare.
Ti ringrazio, così funziona tutto ! Un domanda stupida: se io modifico il file di test oppure anche il file fixed.c è sufficente che esegua gcc -c per controllare eventuali errori?
__________________
Macbook Pro 15,4" 2,4Ghz Penryn, 2Gb Ram, 200Gb HD
nlazza87 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2009, 19:25   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' sufficiente per controllare eventuali errori di compilazione.
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
Huawei presenta i nuovi eKit: soluzioni ...
Rockstar spiega i licenziamenti degli sv...
Il "concert phone" definitivo ...
Nintendo punta sul cinema: dopo Mario, a...
Insta360 X4 Air in prova: registra a 360...
PlayStation Portal: arriva lo Streaming ...
iPad Air 13'' (M2) in offerta: sconto di...
Schiaffo al copyright: utilizzare materi...
realme GT 8 Pro porta le fotocamere inte...
JBL Clip 5 a soli 39€ su Amazon: lo spea...
Apple pronta a pagare 1 miliardo l'anno ...
Apple non dimentica gli iPhone più...
Nintendo si prepara a dare il benservito...
Arriva la Canon R6 Mark III con un obiet...
Una famiglia ha ridotto un conto ospedal...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:40.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v