Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
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


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Scoperta la zona d'origine del segnale W...
La Stazione Spaziale Internazionale cont...
La Difesa statunitense ha pubblicato la ...
vivo X500 Pro e Pro Max ufficiali: tanta...
iOS 27.2: l'iPhone chiede ai numeri scon...
Final Cut Pro integra MotionVFX e Apple ...
iMac M6 da 1.829 euro, MacBook Pro 14 M6...
RayNeo GT a 313,65€ su Amazon: occhiali ...
NVIDIA e Meta: 3 miliardi di dollari e p...
PHP2Shell: sfruttate attivamente le due ...
Raffreddamento passivo senza elettricità...
La deforestazione in Amazzonia crolla a ...
La luce del sole a mezzanotte, ecco come...
Oltre mille modelli 3D scaricati senza a...
274 brani di Elvis Presley sono stati us...
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: 20:38.


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