Problemi di porting
Luca Giuzzi
giuzzi a dmf.bs.unicatt.it
Dom 28 Gen 2001 17:02:16 UTC
Nope...
distinguiamo due cose:
1. il linguaggio C
2. la libc
Il LINGUAGGIO C definisce alcuni tipi dato di base
(int/char/long/double/void/etc.), degli operatori (&,*,=,etc.),
dei comandi (usati per il controllo del flusso) e degli
`specificatori' (tipo auto/typedef/union), oltre alla grammatica
relativa.
[sto semplificando qui, lo so... i dettagli esatti sono nell'Appendice A
di K&R e, per gli amanti delle `content free grammar' (ops... context)
in particolare nella sezione 13]
A questo si sovrappongono due altri `oggetti':
1. le direttive di preprocessore
2. le funzioni nella standard library.
Le direttive di preprocessore vengono interpretate PRIMA della compilazione,
le funzioni di libreria (i cui prototipi sono #inclusi nel file) vengono
risolte dopo la compilazione e in fase di linking.
Lo standard ANSI (come l'ISO) richiede che il compilatore e il preprocessore
si comportino in un determinato modo e domanda che alcune funzioni siano
implementate in uno specifico modo nella libreria (Appendice B, K&R).
Tutto il resto (e pure il capitolo 8 di K&R) NON e' parte dello standard
in alcun modo e -in particolare- non e' parte del C.
Le informazioni `sul C' si trovano nelle pagine info di gcc... quelle
sulla libreria standard nelle info di libc (o man pages relative...)
Le funzioni di controllo grafica/controllo cursore/controllo tostapane
sono documentate con i corrispondenti pacchetti, ad esempio le
libX11/Xt/Xav, la termcap e la ncurses, o i pacchetti per X10
(in questo contesto nessuna relazione con X11!!)
[Lo so: sotto DOS sia Borland che Microsoft fornivano l'impressione che
il C fosse un tutt'uno e che le librerie grafiche, ad esempio, fossero
parte dello standard, cosa non vera... il Watcom C forse era l'unico fra
i compilatori commerciali a non indurre in questo errore]
Ciao,
lg
:
Maggiori informazioni sulla lista
Lug
|