L'inclusione di header file e il collegamento di librerie sono due azioni diverse che coinvolgono fasi diverse. Molto a grandi linee, l'inclusione degli header e' gestita (assieme ad altre direttive quali #define) dal preprocessore, che e' quel componente che agisce subito prima del compilatore vero e proprio; il preprocessore manipola i sorgenti espandendo le varie direttive, e il suo output e' ancora un sorgente C, in cui pero' i vari header file sono stati incorporati nel sorgente vero e proprio. Puoi fare qualche prova invocando 'cpp' o 'gcc -E' su qualche sorgente C.Originariamente inviato da Lyn
Ma quindi oltre a includere i sorgenti degli header e` anche possibile indicare l'inclusione delle librerie precompilate? O e` una cosa implicita, nel momento in cui si compila un programma su un sistema che le ospita?
Il preprocessore da in pasto il suo lavoro al compilatore vero e proprio, che da un file sorgente C emette la traduzione in codice macchina, piu' eventuali ottimizzazioni; infine, e' il linker (ld) che mette insieme tutti i pezzi di codice oggetto, prodotti dal compilatore, per dar vita ad un eseguibile, una libreria o altro; e' appunto in questa fase che ha lugo l'inclusione (meglio: collegamento) delle varie librerie utilizzate.
Linux (il kernel) usa l'ISO C99 + estensioni di gcc; Linux (l'OS) supporta pero' sia ISO C che POSIX. POSIX, nella fattispecie, e' uno standard che specifica quali feature deve esporre un sistema di tipo unix a livello di funzioni di libreria o chiamate di sistema (e altro ancora). Lo si puo' vedere come un sovrainsieme dello standard C.Ma a grandi linee cosa cambia tra ANSI C99 (il piu` recente, a quanto ho letto) e POSIX? Linux quale usa?
A iosa ne esistonoLibrerie grafiche ne esistono? Ad esempio una cosa del tipo window (0,0,100,100) che mi costruisca una finestra 100x100 a partire dalle coordinate 0,0? E se esistono, fan parte dei vari standard o sono totalmente separate da essi?
Non conosco pero' librerie grafiche regolamentate da standard (a livello di codice)



Rispondi quotando