creare funzioni (o librerie?)

Programmazione, algoritmica, teoria dell'informazione, ...
Avatar utente
exodd
Messaggi: 728
Iscritto il: 09 mar 2007, 19:46
Località: sulle pendici della provincia più alta d'europa

Messaggio da exodd »

Agi_90 ha scritto:tutte le funzioni nel C hanno una definizione da qualche parte; quando tu fai #include <something> non fai altro che inserire un bel po' di definizioni al tuo codice. Se vuoi avere le tue funzioni sempre disponibili fai un bel file con tutte le definizioni e chiammalo miofile.h o quello che vuoi e poi in ogni sorgente dove usi le tue funzioni metti all'inizio del codiice (come dice SkZ DOPO gli include delle librerie di sistema) #include <miofile> in questo modo avrai tutto disponibile. Se per qualche motivo strano hai problemi di definizioni di variabili usa il namespace. Spero di essere stato d'aiuto. :D
già lo sapevo:
io volevo sapere come si fa a scrivere e creare <miofile>
Tutto è possibile: L'impossibile richiede solo più tempo
julio14 ha scritto: jordan è in realtà l'origine e il fine di tutti i mali in $ \mathbb{N} $
EvaristeG ha scritto:Quindi la logica non ci capisce un'allegra e convergente mazza.
ispiratore del BTA

in geometry, angles are angels

"la traslazione non è altro che un'omotetia di centro infinito e k... molto strano"
Tibor Gallai
Messaggi: 1776
Iscritto il: 17 nov 2007, 19:12

Messaggio da Tibor Gallai »

Scrivi le funzioni e salvi il file come "miofile.h".
Il vero problema è come far sì che il compilatore trovi il file una volta che lo includi.
Ci sono almeno 2 modi: o metti miofile.h nella stessa directory dei sorgenti e lo includi con #include "miofile.h", oppure lo metti nella directory standard, che di solito si trova in /include da qualche parte nell'installazione del tuo compilatore, e lo includi con #include <miofile>.
[quote="Pigkappa"]Penso che faresti un favore al mondo se aprissi un bel topic di bestemmie da qualche parte in modo che ti bannino subito.[/quote]
Avatar utente
SkZ
Messaggi: 3333
Iscritto il: 03 ago 2006, 21:02
Località: Concepcion, Chile
Contatta:

Messaggio da SkZ »

come gia' detto,

Codice: Seleziona tutto

#include <lib.h>
e' per gli headers di sistema. Per includere i tuoi usa

Codice: Seleziona tutto

#include "lib.h"
#include "../headers/lid.h"
a meno che tu non intenda fare librerie abbastanza complesse, ma non penso tu possa "battere" quelle gia' esistenti


Infatti un buon header che funga da libreria con funzioni e' bene che contenga sempre tutti gli header di sistema e sia autonomo. Pero' a volte io spezzo il "preambolo" in piu' header, ovvero quando l'header e' proprio di quel sorgente e non verra' riusato in altri. In questo caso non e' necessario, anche perche' di solito non ha grandi funzioni :P ma di solito definizioni.
Cmq non c'e' problema dato che gli header seri sono costruiti in modo da essere inclusi una volta sola con

Codice: Seleziona tutto

#ifndef MYLIB_HEADER
#define MYLIB_HEADER
[...]
#endif
allego 2 header: uno che funge da libreria e uno semplicemente per separare parte del codice (mi dava problemi di identazione in xemacs :P )

I tuoi header e' bene includerli all'inizio di tutto se li testi, ma poi e' sempre bene includerli dopo, soprattutto se ridefinisci qualcosa (e' questo a cui ti riferivi fph?), cosa non troppo strana in lavori complessi e soprattutto in C++
Allegati
SkZmatrix.h
piccola libreria per matrici auto costruita
(12.24 KiB) Scaricato 462 volte
lsqfit_err.h
semplice codice da aggiungere al codice base
(2.24 KiB) Scaricato 441 volte
impara il [tex]~\LaTeX[/tex] e mettilo da par[tex]\TeX~[/tex]

Software is like sex: it's better when it's free (Linus T.)
membro: Club Nostalgici
Non essere egoista, dona anche tu! http://fpv.hacknight.org/a8.php
Avatar utente
exodd
Messaggi: 728
Iscritto il: 09 mar 2007, 19:46
Località: sulle pendici della provincia più alta d'europa

Messaggio da exodd »

finalmente ci sono riuscito.. grazie a tutti :wink:
Tutto è possibile: L'impossibile richiede solo più tempo
julio14 ha scritto: jordan è in realtà l'origine e il fine di tutti i mali in $ \mathbb{N} $
EvaristeG ha scritto:Quindi la logica non ci capisce un'allegra e convergente mazza.
ispiratore del BTA

in geometry, angles are angels

"la traslazione non è altro che un'omotetia di centro infinito e k... molto strano"
Rispondi