PDA

View Full Version : Codice delle funzioni C


rasega
14-01-2003, 16:27
Ciao, è possibile risalire al codice che compone le funzioni predefinite in c ??
Secondo me sarebbe molto istruttivo vedere come sono scritte !!

AnonimoVeneziano
14-01-2003, 16:41
Dovrebbe essere tra le librerie delle funzioni, in linux tutte le librerie del GCC sono raccolte in /usr/include mi sembra , sotto forma di files *.h

Ciao

rasega
14-01-2003, 16:49
Già...credo anch'io, ma ce n'è un casino di file .h !!
Ad esempio clrscr() è contenuta in stdio.h , ma solo la dichiarazione...il resto ??

ilsensine
14-01-2003, 16:51
No, quelli sono gli header (contengono solo i prototipi delle funzioni).
Occorre avere i sorgenti di una libreria c; sotto linux si trovano, sotto windows...mah...forse la Borland fornisce qualcosa, la Microsoft non so

rasega
14-01-2003, 16:53
Ma sarebbe possibile importare 'ste librerie di Linux in Win ??
(premetto che non capisco un H di Linux !!)
...beh...o comunque trovare un modo x leggere 'sti codici ??

ilsensine
14-01-2003, 16:57
E' sempre c, se vuoi studiarle i sorgenti li trovi qui: ftp://ftp.gnu.org/gnu/glibc/

rasega
14-01-2003, 16:59
Quale dei tanti :eek: ;)

AnonimoVeneziano
14-01-2003, 17:00
Originally posted by "ilsensine"

No, quelli sono gli header (contengono solo i prototipi delle funzioni).
Occorre avere i sorgenti di una libreria c; sotto linux si trovano, sotto windows...mah...forse la Borland fornisce qualcosa, la Microsoft non so

E dai prototipi come si arriva alle funzioni vere e proprie?

Ciao

AnonimoVeneziano
14-01-2003, 17:19
Approposito, già che ci sei ilsensine, mi spieghi una cosa?

Perchè se creo un array da 30 byte di tipo char senza inizializzarlo con :

char sTringa[30];

e poi dopo un po' ci concateno con strcat() un altra stringa tipo :

strcat(sTringa,"questa è una stringa");

poi visualizzando con printf la stringa risultante ho :

(/(/&&YYUIuy questa è una stringa

???

In pratica prima della stringa in questione mi finiscono davanti un mucchio di caratteri strani , ma la cosa strana è che + grande faccio l'array - caratteri strani ci sono, ad esempio se faccio un array da 800 byte i caratteri strani scompaiono, e ho la stringa corretta, (ho già contato, i caratteri stanno perfettamente in linea col numero di byte che compongono l'array, i caratteri non sono di + degli spazi liberi) , se però inizializzo anke solo con il vuoto la stringa prima di concatenarla ad esempio con:

char sTringa[30]="";

I caratteri strani non ci sono, perchè??

Grazie

Ciao

rasega
14-01-2003, 17:29
Il trucco è :
1) Inizializza SEMPRE e non porti queste domande !! :D
2) Non andare OT nelle discussioni degli altri !! ;)

AnonimoVeneziano
14-01-2003, 17:36
Originally posted by "rasega"

Il trucco è :
1) Inizializza SEMPRE e non porti queste domande !! :D
2) Non andare OT nelle discussioni degli altri !! ;)

Ah ok , scusa :D

Ma sai, sono un novellino nella programmazione , e voglio capire (zono anke ggiovane e ho voglia di imparare :D )

Quindi a quanto ho capito la non inizializzazione degli array può portare problemi, oppure solo quelle degli array char? Perchè succede quello che è successo? Succede a tutti? E' vero che il mondo finirà nel prossimo millenio? George Bush se le lava le mutande? E Berlusconi?

Grazie :D

Ciao

cionci
14-01-2003, 18:34
Non ti porti il problema del numero di caratteri...poniti il problema del perchè tu lo usi senza inizializzare la memoria contenuta in quel vettore ;)

AnonimoVeneziano
14-01-2003, 18:53
E vabbene, mi arrendo , come se non avessi detto niente :D

Ciao