# C/Appendice/Strumenti

C
Copertina Tutti i moduli · Sviluppo
* LinguaggioC/Linguaggio
** PanoramicaC/Linguaggio/Panoramica
** Struttura del linguaggioC/Linguaggio/Struttura del linguaggio
* Variabili, operatori e costantiC/Variabili, operatori e costanti
** VariabiliC/Variabili, operatori e costanti/Variabili
** Operatori aritmeticiC/Variabili, operatori e costanti/Operatori aritmetici
** Operatori sui bitC/Variabili, operatori e costanti/Operatori sui bit
** CostantiC/Variabili, operatori e costanti/Costanti
* Blocchi e funzioniC/Blocchi e funzioni
** Blocchi if e switchC/Blocchi e funzioni/Blocchi if e switch
** Operatori logiciC/Blocchi e funzioni/Operatori logici
** CicliC/Blocchi e funzioni/Cicli
** FunzioniC/Blocchi e funzioni/Funzioni
** mainC/Blocchi e funzioni/main
** LibrerieC/Blocchi e funzioni/Librerie
** RicorsivitàC/Blocchi e funzioni/Ricorsività
* Vettori e puntatoriC/Vettori e puntatori
** VettoriC/Vettori e puntatori/Vettori
** PuntatoriC/Vettori e puntatori/Puntatori
** Interscambiabilità tra puntatori e vettoriC/Vettori e puntatori/Interscambiabilità tra puntatori e vettori
* StringheC/Variabili, operatori e costanti/Stringhe
* Enumerazioni, strutture e unioniC/Enumerazioni, strutture e unioni
** EnumerazioniC/Enumerazioni, strutture e unioni/Enumerazioni
** StruttureC/Enumerazioni, strutture e unioni/Strutture
** UnioniC/Enumerazioni, strutture e unioni/Unioni
* Conversioni di tipoC/Conversioni di tipo
* Lettura e scrittura su fileC/Lettura e scrittura su file
** File di TestoC/Lettura e scrittura su file/File di Testo
** File BinariC/Lettura e scrittura su file/File Binari
* Compilatore e precompilatoreC/Compilatore e precompilatore
** CompilatoreC/Compilatore e precompilatore/Compilatore
** DirettiveC/Compilatore e precompilatore/Direttive
** HeaderC/Compilatore e precompilatore/Header
* VisibilitàC/Visibilità
* Gestione della memoriaC/Gestione della memoria
* Le applicazioni CGIC/Le applicazioni CGI
* Appendice
** Librerie standardC/Appendice/Librerie standard
*** assert.hC/Appendice/Librerie standard/assert.h
*** ctype.hC/Appendice/Librerie standard/ctype.h
*** errno.hC/Appendice/Librerie standard/errno.h
*** float.hC/Appendice/Librerie standard/float.h
*** limits.hC/Appendice/Librerie standard/limits.h
*** locale.hC/Appendice/Librerie standard/locale.h
*** math.hC/Appendice/Librerie standard/math.h
*** setjmp.hC/Appendice/Librerie standard/setjmp.h
*** signal.hC/Appendice/Librerie standard/signal.h
*** stdarg.hC/Appendice/Librerie standard/stdarg.h
*** stddef.hC/Appendice/Librerie standard/stddef.h
*** stdio.hC/Appendice/Librerie standard/stdio.h
*** stdlib.hC/Appendice/Librerie standard/stdlib.h
*** string.hC/Appendice/Librerie standard/string.h
*** time.hC/Appendice/Librerie standard/time.h
** StrumentiC/Appendice/Strumenti
*** InstallerC/Appendice/Strumenti/Installer
** Librerie esterneC/Appendice/Librerie esterne
* Bibliografia
    IndiceC/Indice
Modifica il sommario
Per sviluppare in C sono necessari due strumenti:
* un sistema di compilazione (un insieme di programmi, come compilatore, linker, debugger, ecc.) che controlla gli errori e traduce il sorgente C in un eseguibile
* un editor di testi o un IDE(Integrated Development Environment o Ambiente di sviluppo integrato)
È possibile usare qualsiasi editor di testi disponibile sul proprio sistema operativo, ma si segnalano le soluzioni gratuite, per venire incontro alle più svariate esigenze, da chi vuole scrivere il codice direttamente dalla shell Linux a chi vuole un sistema integrato sotto Windows che permetta anche di compilare.

## Per Windows

Ci sono diversi compilatori e ambienti di sviluppo integrato (IDE) per Windows; qui si segnalano i più leggeri:
* Tcc, Tiny C Compiler. Si tratta di un compilatore sotto licenza libera (LGPL) estremamente piccolo che ha come scopo quello di produrre codice molto leggero, inoltre può funzionare da interprete. È scritto e mantenuto da Fabrice Bellard ed è reperibile qui
* MinGW, Minimalist GNU for Windows, è l'adattamento in ambiente Windows del famoso compilatore GCC per GNU/Linux rilasciato sotto licenza libera. Inoltre ci sono alcune utilità tipiche di GNU/Linux. Infatti questo progetto è nato proprio per rendere facile la programmazione a chi era abituato a sviluppare con GCC. Si può ottenere a questo indirizzo nella sezione download.
* Pelles C, è un kit completo di sviluppo per Windows e Windows Mobile che supporta molte funzionalità del C99. Il compilatore si basa su LCC (di Chris Fraser e David Hanson) ed è stato creato da Pelle Orinius ed è gratuito e liberamente distribuibile per scopi non commerciali, inoltre è un IDE leggero e specifico per i linguaggio C. È reperibile al seguente indirizzo.
* Dev-C++ è un IDE gratuito distribuito sotto la Licenza GNU per la programmazione in C/C++. Il programma ha un aspetto simile al più largamente usato Microsoft Visual Studio. Una caratteristica in più di Dev-C++ è il suo uso dei DevPaks, estensioni sull'ambiente di programmazione con librerie addizionali, template e strumenti. È reperibile al seguente indirizzo.
* Code::Block è un IDE gratuito multipiattaforma simile a Dev-C++, ma a differenza di quest'ultimo la funzionalità di debug è già prevista; lo potete scaricare al seguente indirizzo
* WxDev-C++ conserva tutte le caratteristiche di Dev-C++ e aggiunge la possibilità di "disegnare" interfacce grafiche in stile Visual Studio, utilizzando le librerie grafiche WxWidget reperibile qui

## Per GNU/Linux

Praticamente lo standard è GCC.
* GCC (GNU Compiler Collection, in origine GNU C Compiler) è un compilatore creato inizialmente dal fondatore della Free Software Foundation, Richard Stallman, come parte del Progetto GNU. Le versioni recenti sono incorporate nelle principali distribuzioni del sistema operativo GNU/Linux. Ovviamente è software libero.
* KDevelop. IDE Realizzato come parte integrante dello stesso desktop KDE, è rilasciato con licenza GPL e permette la programmazione in Bash, C/C++, Fortran, Java, Perl ed altri linguaggi, offrendo funzionalità diverse a seconda di quello utilizzato. Una delle sue caratteristiche più interessanti riguarda la leggerezza che offre in termini di risorse necessarie al suo funzionamento.
* Anjuta. Permette di programmare in C e C++. Risulta un'applicazione elegante ed ordinata, con un'interfaccia grafica semplice da utilizzare. Di solito non è installato insieme al desktop, e per questo è necessario scaricarlo dal sito ufficiale o utilizzare i pacchetti inclusi nei repository della propria distribuzione.

## Per macOS

* Xcode è un IDE per la programmazione su C, C++, Objective-C e Swift. È possibile creare applicazioni per iOS, macOS, watchOS e tvOS, con la possibilità di utilizzare simulatori di molteplici dispositivi.