linux user group brescia

immagine del castello

Archivio della mailing list

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