{"id":6373,"date":"2011-03-25T15:30:55","date_gmt":"2011-03-25T14:30:55","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=6373"},"modified":"2011-10-05T12:20:35","modified_gmt":"2011-10-05T10:20:35","slug":"4-gli-strumenti-del-programmatore","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/4-gli-strumenti-del-programmatore\/","title":{"rendered":"4. Gli strumenti del programmatore"},"content":{"rendered":"<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-00.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-00.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-00\" title=\"corso-completo-c-gli-strumenti-del-programmatore-00\" width=\"200\" height=\"100\" class=\"alignleft size-full wp-image-6392\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-00.jpg 200w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-00-150x75.jpg 150w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a> Prima di addentrarci nei dettagli del linguaggio C, vediamo quali sono gli strumenti necessari e come fare per scrivere ed eseguire i nostri programmi.<br \/>\nIo qui dar\u00f2 solo una piccola panoramica, cercando di essere quanto pi\u00f9 oggettivo possibile su pregi e difetti di ciascuno strumento, ma sappiate che in questo campo, pi\u00f9 che in altri, esistono delle vere e proprie scuole di pensiero inconciliabili tra loro quindi, come sempre, provate, sperimentate e poi decidete con la vostra testa quali sono gli strumenti con i quali vi trovate pi\u00f9 a vostro agio.<br \/>\nQuesto articolo \u00e8 diviso in due parti, nella prima vedremo quali sono gli strumenti minimi per iniziare a programmare in C a seconda del sistema opearativo utilizzato, mentre nella seconda parte vedremo quali sono i programmi che offrono qualche funzionalit\u00e0 in pi\u00f9. Completeremo entrambe le sezioni con un esempio concreto di scrittura e compilazione di un semplice programma.<!--more--><\/p>\n<h4>PARTE 1 &#8211; Spirito minimalista<\/h4>\n<p>Per realizzare un programma scritto in linguaggio C gli strumenti veramente indispensabili sono davvero pochi:<\/p>\n<ul>\n<li>un editor di testi<\/li>\n<li>un compilatore<\/li>\n<\/ul>\n<p>Nient&#8217;altro! A seconda del sistema operativo che state utilizzando potete utilizzare programmi diversi, nell&#8217;elenco seguente ho elencato i pi\u00f9 comuni:<\/p>\n<h4>Microsoft Windows<\/h4>\n<p>Chi programma utilizzando un computer con sistema operativo Microsoft Windows di solito non apprezza molto l&#8217;utilizzo di strumenti cos\u00ec scarni come un editor ed un compilatore, di norma predilige un pacchetto pi\u00f9 completo, per\u00f2 se volete evitare di appesantire troppo la vostra macchina windows ecco un elenco di programmi leggeri leggeri.<\/p>\n<h4>Editor di testi<\/h4>\n<p>Come editor di testi potrebbe bastare anche il banale <strong>Blocco note<\/strong> ma quello \u00e8 davvero fin troppo minimal, sicuramente vi troverete molto meglio con un programma come <strong>notepad++<\/strong> (<a href=\"http:\/\/notepad-plus-plus.org\/\" target=\"_blank\">link<\/a>) oppure <strong>Scite<\/strong> (<a href=\"http:\/\/www.scintilla.org\/SciTE.html\" target=\"_blank\">link<\/a>). Sono entrambi programmi gratuiti e si installano senza alcuna difficolt\u00e0. Hanno alcune funzionalit\u00e0 adatte proprio per chi scrive programmi, come la colorazione del testo differenziata a seconda delle parole del linguaggio, la visualizzazione del numero delle righe, il collapse dei blocchi di istruzioni, la gestione di pi\u00f9 file tramite tab e molto altro (capirete strada facendo quanto siano importanti queste &#8220;piccole&#8221; funzionalit\u00f2, ora prendete tutto per buono). In questa foto i due programmi fianco a fianco. (Per gli screenshoot ringraziamo ancora la mia dolce met\u00e0 che si ostina ad utlizzare windows 7 \ud83d\ude42 ) <\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-01.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-01\" title=\"corso-completo-c-gli-strumenti-del-programmatore-01\" width=\"550\" height=\"323\" class=\"aligncenter size-full wp-image-6375\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-01.jpg 1024w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-01-300x175.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Il compilatore<\/h4>\n<p>Per compilare i programmi scritti in C sotto windows vi servir\u00e0 un compilatore C. Ne esistono tanti, sia prodotti da microsoft, sia OpenSource. Quello che vi consiglio io \u00e8 un kit di programmi OpenSource che si chiama <strong>MinGW<\/strong> (Minimali GNU for Windows) e, una volta scaricato da questo indirizzo (<a href=\"http:\/\/sourceforge.net\/projects\/mingw\/files\/Cross-Hosted%20MinGW%20Build%20Tool\/x86-mingw32-build-1.0\/x86-mingw32-build-1.0-sh.tar.bz2\/download\" target=\"_blank\">link<\/a>) ed installato, vi permetter\u00e0 di compilare con estrema facilit\u00e0 i vostri programmi.<br \/>\nL&#8217;installazione \u00e8 semplice e non presenta alcuna difficolt\u00e0, purtroppo per\u00f2 la cartella di installazione non viene aggiunta alla variabile d&#8217;ambiente <em>PATH<\/em> di window, e questo comporterebbe qualche fastidio in fase di compilazione. Le seguenti istruzioni sono valide per windows seven ma per le altre versioni di windows la procedura \u00e8 molto simile.<\/p>\n<ol>\n<li>Dal pannello di controllo cliccate sull&#8217;icona &#8220;Sistema&#8221;<\/li>\n<li>Dalla schermata che vi si apre cliccate sulla voce &#8220;Impostazioni di sistema avanzate&#8221; che trovate nell&#8217;elenco a sinistra<\/li>\n<li>Nella finestra &#8220;Propriet\u00e0 del sistema&#8221; cliccate sul pulsante &#8220;Variabili d&#8217;ambiente&#8221; presente nella scheda &#8220;avanzate&#8221;<\/li>\n<li>Selezionate nella finstra &#8220;variabili d&#8217;ambiente&#8221;, dall&#8217;elenco &#8220;Variabili di sistema&#8221; la voce &#8220;Path&#8221; e cliccate sul pulsante &#8220;modifica&#8221;.<\/li>\n<li>Aggiungete in fondo alla stringa il testo &#8220;<strong>c:\\mingw\\bin<\/strong>&#8221; (senza le virgolette e senza lasciare spazi) <strong>NB<\/strong> questa stringa si riferisce alla cartella di installazione di default, se durante l&#8217;installazione avete apportato delle modifiche cambiatela di conseguenza.<\/li>\n<li>Cliccate su &#8220;ok&#8221; per chiudere tutte le finestre.<\/li>\n<li>Riavviate il computer o effettuare la disconnessione e nuovo login<\/li>\n<\/ol>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-02.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-02.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-02\" title=\"corso-completo-c-gli-strumenti-del-programmatore-02\" width=\"550\" height=\"323\" class=\"aligncenter size-full wp-image-6376\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-02.jpg 1024w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-02-300x175.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-02-150x87.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Per essere sicuri che tutto sia avvenuto correttamente aprite una finestra del prompt dei comandi (tramite start -> cmd -> invio) nella finestra che appare scrivete &#8220;<strong>gcc<\/strong>&#8221; senza virgolette e premete invio.<br \/>\nSe il messaggio restituito \u00e8 &#8220;gcc: no input files&#8221; \u00e8 tutto ok, se invece il messaggio \u00e8 &#8220;gcc non \u00e8 stato riconosciuto etc etc..&#8221; qualcosa \u00e8 andato storto (rifate tutto da capo).<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-03.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-03.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-03\" title=\"corso-completo-c-gli-strumenti-del-programmatore-03\" width=\"550\" height=\"298\" class=\"aligncenter size-full wp-image-6377\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Linux<\/h4>\n<p>Gli utilizzatori linux sono per definizione amanti degli strumenti scarni e senza fronzoli, quindi si troveranno a loro agio in questo ambiente minimalista.<\/p>\n<h4>Editor di testi<\/h4>\n<p>Gli utenti linux possono utilizzare sia editor di testi con interfaccia grafica come <strong>gedit<\/strong>, normalmente installato con distribuzioni come <strong>Ubuntu<\/strong>, oppure editor di testi da terminale, come <strong>nano<\/strong>, <strong>vim<\/strong> ed <strong>emacs<\/strong>. Se non conoscete vim o emacs allora utilizzate Gedit, se invece li conoscete probabilmente avrete gi\u00e0 saltato questo paragrafo \ud83d\ude42<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-04.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-04.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-04\" title=\"corso-completo-c-gli-strumenti-del-programmatore-04\" width=\"550\" height=\"408\" class=\"aligncenter size-full wp-image-6378\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-04-300x223.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-04-150x111.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Il compilatore<\/h4>\n<p>A seconda della distribuzione linux che state utilizzando il compilatore C potrebbe gi\u00e0 essere installato di default, ma se non lo fosse basta installarlo con il packet manager predefinito della vostra distribuzione. Per ubuntu il comando da eseguire \u00e8:<\/p>\n<pre line=\"1\" escaped=\"true\">\r\napt-get install build-essential\r\n<\/pre>\n<p>Allo stesso modo, se siete utenti windows, verificate prima di continuare che tutto sia andato per il verso giusto aprendo un terminale e scrivendo &#8220;gcc&#8221; senza virgolette e pigiando invio. Il messaggio deve essere &#8220;no input file&#8221;.<\/p>\n<h4>MacOS<\/h4>\n<p>Gli utenti mac sono spesso utenti a cui piace la vita comoda, e prediligono strumenti software un tantino pi\u00f9 elaborati, ma tenendo conto che molti utenti mac hanno anche una buona infarinatura linux non disdegneranno qualche consiglio per lavorare con programmi minimalisti.<\/p>\n<h4>Editor di testi<\/h4>\n<p>Esistono davvero tanti programmi adatti allo scopo per MacOS, alcuni sono gratis, altri a pagamento. Ho trovato molto comodo <strong>Smultron<\/strong> (<a href=\"http:\/\/www.peterborgapps.com\/smultron\/\" target=\"_blank\">link<\/a>) e <strong>TextWrangler<\/strong> (<a href=\"http:\/\/www.barebones.com\/products\/textwrangler\/index.html\" target=\"_blank\">link<\/a>). Anche <strong>TextMate<\/strong> (<a href=\"http:\/\/macromates.com\/\" target=\"_blank\">link<\/a>) \u00e8 un ottimo software, ma \u00e8 a pagamento.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-05.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-05.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-05\" title=\"corso-completo-c-gli-strumenti-del-programmatore-05\" width=\"550\" height=\"356\" class=\"aligncenter size-full wp-image-6379\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-05.jpg 888w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-05-300x193.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-05-150x96.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Il compilatore<\/h4>\n<p>Il sistema pi\u00f9 comodo per avere il compilatore C su MacOS \u00e8 quello di installare <strong>XCode<\/strong>, il software prodotto dalla apple specifico per realizzare i nostri programmmi. Di questo programma parleremo pi\u00f9 avanti, per l&#8217;installazione basta inserire il cd di snow leopard all&#8217;interno del lettore e cliccare sull&#8217;icona &#8220;install optional components&#8221; oppure scaricare il pacchetto pi\u00f9 aggiornato di XCode dal sito di apple developer (attenzione, sono circa 4 gigabyte!). Sul sito viene richiesta la registrazione gratuita.<\/p>\n<h4>Soluzioni multipiattaforma<\/h4>\n<p>I programmi che ho elencato sono quelli pi\u00f9 comuni per i diversi sistemi operativi ma, soprattutto nel caso di software open source, esistono pi\u00f9 versoni dello stesso programma adatte anche agli altri sistemi. \u00c8 possibile infatti utilizzare Gedit ed emacs anche su MacOS o notepad++ su linux e via dicendo. Questo pu\u00f2 essere utile soprattutto se si lavora su postazioni diverse, utlizzare sempre lo stesso programma anche su due piattaforme diverse aumenter\u00e0 la vostra produttivit\u00e0.<\/p>\n<h4>Come generare il nostro primo programma<\/h4>\n<p>A questo punto vediamo come si crea un programma con questi strumenti appena installati. Bisogner\u00e0 scrivere con l&#8217;editor di testi che abbiamo scelto il nostro programma, in questo momento non lo sappiamo fare, ma fidatevi di me e copiate e incollate nel vostro editor di testi preferito il seguente codice:<\/p>\n<pre line=\"1\" escaped=\"true\">\r\n#include <stdio.h>\r\n\r\nint main() {\r\n\tprintf(\"Questo e' il mio primo programma\\n\");\r\n\treturn 0;\r\n}\r\n<\/pre>\n<p>Lo scopo di questo programma \u00e8 visualizzare il messaggio &#8220;Questo \u00e8 il mio primo programma&#8221; all&#8217;interno di una finestra di comando o terminale.<br \/>\nSalvate il file in una cartella a vostra scelta con il nome di &#8220;primoprogramma.c&#8221;.<br \/>\nAdesso se state utilizzando windows aprite il prompt dei comandi (start -> cmd -> INVIO) oppure un terminale se state utilizzando linux o mac e spostatevi nella cartella in cui avete salvato il file (Il comando da dare \u00e8 &#8220;CD nomecartella&#8221; ). Avviamo il processo di compilazione del nostro programma digitando:<\/p>\n<pre line=\"1\" escaped=\"true\">\r\ngcc primoprogramma.c\r\n<\/pre>\n<p>Se tutto \u00e8 andato come si deve dopo un attimo vedrete apparire nella stessa cartella di &#8220;primoprogramma.c&#8221; un file chiamato  &#8220;a.exe&#8221; se stiamo utlizzando un sistema operativo windows, altrimenti su linux e MAcOS il file si chiamer\u00e0 &#8220;a.out&#8221;. Questo \u00e8 il nostro primo programma compilato e pronto ad essere eseguito.<br \/>\nL&#8217;esecuzione di questo programma sui sistemi windows e linux\/macos \u00e8 leggermente diversa, per quanto riguarda i sistemi windows baster\u00e0 digitare, nella stessa finestra dove si \u00e8 digitato il comando precedente<\/p>\n<pre line=\"1\" escaped=\"true\">\r\na.exe\r\n<\/pre>\n<p>e dare invio, mentre per i sitemi linux e MacOS il comando da digirare sul terminale \u00e8:<\/p>\n<pre line=\"1\" escaped=\"true\">\r\n.\/a.out\r\n<\/pre>\n<p>Se non ci sono stati errori dovreste veder apparire il testo &#8220;Questo \u00e8 il mio primo programma&#8221;.<\/p>\n<p><strong>Nota sul comando per linux\/macos:<\/strong> perch\u00e8 bisogna digitare &#8220;.\/a.out&#8221;? invece di &#8220;a.out&#8221;? Il problema nasce per una questione di sicurezza. Se in linux\/macosx digitiamo il nome di un programma questo viene ricercato solo nelle cartelle che sono state specificate nella variabilie d&#8217;ambiente PATH. Se il programma non risiede in una di queste cartelle il sitema non lo trova, e bisogna quindi fornirgli tutto il percorso del file come &#8220;\/home\/mioutente\/desktop\/a.out&#8221; oppure, utilizzando il punto come sinonimo di directory corrente &#8220;.\/a.out&#8221;.<br \/>\nCi si potrebbe chiedere come mai linux\/macosx siano cos\u00ec &#8220;stupidi&#8221; da non trovare un programma che risiede nella cartella attuale, ma ovviamente non \u00e8 una questione di &#8220;stupidit\u00e0&#8221; ma di sicurezza, perch\u00e8 cosa succederebbe se un utente smaliziato inserisse sul desktop un programma che si chiama ad esempio &#8220;ls&#8221; che invece di elencare i file vi danneggia il sistema? Succederebbe che scrivendo &#8220;ls&#8221; sul terminale, invece di richiamare il file originale residente in &#8220;\/bin&#8221; verrebbe richiamato il programma modificato, con il risultato di mettere a rischio l&#8217;intero sistema. Ecco perch\u00e8 su linux\/macosx bisogna digitare &#8220;.\/a.out&#8221;.<\/p>\n<h4>PARTE 2 &#8211; Sistemi pi\u00f9 completi<\/h4>\n<p>Alcuni utenti potrebbero preferire l&#8217;utilizzo di programmi pi\u00f9 completi rispetto a quelli elencati nella precedente sezione, dove quantomento la fase di stesura del codice e di compilazione siano integrate. Questi programmi si chiamano <strong>IDE<\/strong> (Integrated Developement Environment) (<a href=\"http:\/\/it.wikipedia.org\/wiki\/Integrated_development_environment\" target=\"_blank\">link<\/a>) e ve ne sono veramente tanti ed \u00e8 difficile stabilire quale sia il migliore.<\/p>\n<h4>Microsoft Windows<\/h4>\n<p>Devo ammettere di non essere un fan del mondo windows, quindi confesso la mia ignoranza in merito ai tool di sviluppo creati direttamente da microsoft. Esiste un ide, della famiglia Visual studio, specifico per programmare in C++, che si chiama Visual C++ 2010 Express. Provatelo se volete e mandatemi i vostri pareri. Io consiglio piuttosto un ide molto pi\u00f9 leggero e pratico che ha anche il vantaggio di essere multipiattaforma, sto parlando di <strong>Code::Block<\/strong> (<a href=\"http:\/\/www.codeblocks.org\/\" target=\"_blank\">link<\/a>) In questa immagine lo vediamo al massimo delle sue funzionalit\u00e0.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-06.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-06\" title=\"corso-completo-c-gli-strumenti-del-programmatore-06\" width=\"550\" height=\"439\" class=\"aligncenter size-full wp-image-6380\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-06.jpg 814w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-06-300x239.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-06-150x119.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Linux<\/h4>\n<p>Gli utenti linux che volessero utilizzare un ide possono optare per utilizzare lo stesso Code:Block gi\u00e0 consigliato per gli utenti windows, oppure ancora un altro ide molto utilizzato: <strong>Anjuta<\/strong>. L&#8217;installazione di  Anjuta \u00e8 molto semplice perch\u00e8 \u00e8 gi\u00e0 presente in versione pacchettizzata, quindi basta digitare su un terminale, in questo caso su una distro ubuntu:<\/p>\n<pre line=\"1\" escaped=\"true\">\r\napt-get install anjuta\r\n<\/pre>\n<p>Una volta installato anjuta avviatelo e scegliete dal men\u00f9 &#8220;file -> new project&#8221; e selezionate il tipo di progetto &#8220;generic (minimal)&#8221;<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-07.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-07.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-07\" title=\"corso-completo-c-gli-strumenti-del-programmatore-07\" width=\"550\" height=\"385\" class=\"aligncenter size-full wp-image-6381\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-07.jpg 794w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-07-300x209.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-07-150x104.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>In un wizard vi verranno richiesti dei semplici dati di configurazione del progetto, compilateli con le vostre infomazioni e cliccate su &#8220;forward&#8221; fino ad arrivare alla fine del wizard:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-08.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-08.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-08\" title=\"corso-completo-c-gli-strumenti-del-programmatore-08\" width=\"537\" height=\"411\" class=\"aligncenter size-full wp-image-6382\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-08.jpg 537w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-08-300x229.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-08-150x114.jpg 150w\" sizes=\"auto, (max-width: 537px) 100vw, 537px\" \/><\/a><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-09.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-09\" title=\"corso-completo-c-gli-strumenti-del-programmatore-09\" width=\"543\" height=\"413\" class=\"aligncenter size-full wp-image-6383\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-09.jpg 543w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-09-300x228.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-09-150x114.jpg 150w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/a><br \/>\n<\/center><\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-10.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-10\" title=\"corso-completo-c-gli-strumenti-del-programmatore-10\" width=\"550\" height=\"418\" class=\"aligncenter size-full wp-image-6384\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-10.jpg 640w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-10-300x227.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-10-150x113.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Una volta completato il wizard anjuta presenta nuovamente la schermata principale, sulla sinistra sono presenti i file del progetto, mentre sulla destra \u00e8 presente l&#8217;editor.<br \/>\nNella colonna con i file del progetto sono presenti veramente tanti file, ma tra tutti solo uno \u00e8 il file con il programma, si chiama &#8220;main.c&#8221;, tutti gli altri sono i file di configurazione di anjuta e script per l&#8217;installazione del programma. Facciamo doppio click su &#8220;main.c&#8221; e ne vedremo il contenuto nella finestra dell&#8217;editor.<br \/>\nOltre il testo blu, che sono dei commenti al programma, troviamo una parte di codice molto simile a quella che avevamo scritto nella sezione precedente. In questo caso il programma non fa altro che far apparire la stringa di testo &#8220;Hello world&#8221;.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-11.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-11.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-11\" title=\"corso-completo-c-gli-strumenti-del-programmatore-11\" width=\"550\" height=\"385\" class=\"aligncenter size-full wp-image-6385\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-11.jpg 792w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-11-300x210.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-11-150x105.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Per testare il programma bisogna cliccare sul men\u00f9 &#8220;build&#8221; la voce &#8220;build project&#8221;, che servir\u00e0 a compilare il nostro progetto, l&#8217;equivalente ma pi\u00f9 complesso del precedente &#8220;GCC primoprogramma.C&#8221; e successivamente cliccare dal men\u00f9 &#8220;run&#8221;, la voce &#8220;execute&#8221;.<br \/>\nIl risultato dell&#8217;esecuzione sar\u00e0 visibile in una finestra in basso.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-12.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-12.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-12\" title=\"corso-completo-c-gli-strumenti-del-programmatore-12\" width=\"550\" height=\"386\" class=\"aligncenter size-full wp-image-6386\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-12.jpg 792w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-12-300x210.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-12-150x105.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>MacOS<\/h4>\n<p>L&#8217;ide per eccellenza di MacOS \u00e8 Xcode. \u00c8 prodotto dalla stessa Apple ed \u00e8 gratuito, basta registrarsi al sito apple developer (<a href=\"http:\/\/developer.apple.com\/\" target=\"_blank\">link<\/a>) per scaricarlo e ricevere gli aggiornamenti. La Apple richiede una fee (pagamento) per poter sviluppare (o meglio pubblicare nel suo App Store o stestare su device) software per iOS, ma sono due cose ben diverse, la registrazione per il solo download di XCode e per entrare a far parte della community di sviluppatori \u00e8 assolutamente gratuita.<br \/>\nIl download richiede un p\u00f2 di tempo, vista la pesantezza del pacchetto (circa 4 GB) ma l&#8217;installazione e l&#8217;avvio dell&#8217;applicazione \u00e8 abbastanza rapido.<\/p>\n<h4>Come realizzare un programma con xcode<\/h4>\n<p>Una volta installato XCode avviamolo, e dalla schermata che ci appare clicchiamo su &#8220;create new xcode project&#8221;. Si aprir\u00e0 una seconda schermata, nella quale sono elencati alcuni template per le applicazioni di uso pi\u00f9 comune, per il nostro scopo, selezioniamo &#8220;Command Line Tool&#8221; sotto la voce &#8220;Macos X &#8211; Application&#8221;.<br \/>\nSelezioniamo anche dal men\u00f9 &#8220;Type&#8221; la voce &#8220;C&#8221;, visto che stiamo programmando in questo linugaggio e non abbiamo, per il momento, bisogno di altro.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-13.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-13.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-13\" title=\"corso-completo-c-gli-strumenti-del-programmatore-13\" width=\"550\" height=\"446\" class=\"aligncenter size-full wp-image-6387\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-13-300x242.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-13-150x121.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Clicchiamo su &#8220;choose&#8221; e selezioniamo la cartella ed il nome del progetto.<br \/>\nUna volta terminato il wizard XCode si presenta con la sua schermata principale e come nel caso di anjuta abbiamo sulla sinistra i file che compongono il progetto e sulla destra l&#8217;editor.<br \/>\nClicchiamo (una volta) sul file main.c all&#8217;interno della cartella Source e vediamo nell&#8217;editor il solito programma di esempio:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-14.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-14.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-14\" title=\"corso-completo-c-gli-strumenti-del-programmatore-14\" width=\"550\" height=\"389\" class=\"aligncenter size-full wp-image-6388\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-14.jpg 790w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-14-300x212.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-14-150x106.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Per eseguire il programma basta cliccare sul pulsante &#8220;build and run&#8221; posto al centro della finestra. Cliccandoci, per\u00f2, non vedremo alcun risultato se non un &#8220;Debuggin of &#8220;primoprogramma&#8221; ended normally&#8221;. Questo perch\u00e8 la schermata di output del programma non \u00e8 attualmente visibile. Per visualizzarla io utilizzo lo shortcut &#8220;shift+cmd+r&#8221; ma in alternativa basta cliccare sulla voce &#8220;console&#8221; del men\u00f9 &#8220;run&#8221;.<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-15.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-15.jpg\" alt=\"corso-completo-c-gli-strumenti-del-programmatore-15\" title=\"corso-completo-c-gli-strumenti-del-programmatore-15\" width=\"550\" height=\"534\" class=\"aligncenter size-full wp-image-6389\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-15.jpg 804w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-15-300x290.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/corso-completo-c-gli-strumenti-del-programmatore-15-150x145.jpg 150w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Come possiamo vedere nella finestra console viene visualizata la stringa &#8220;Hello world!&#8221;<\/p>\n<h4>Prossimamente<\/h4>\n<p>Nella prossima lezione inizieremo a parlare della sintassi del linguaggio C, vedremo come \u00e8 strutturato e quali sono i blocchi principali.<\/p>\n<h4>Letture consigliate:<\/h4>\n<p><a href=\"http:\/\/www.amazon.it\/gp\/search\/ref=as_li_qf_sp_sr_il_tl?ie=UTF8&#038;keywords=887192200X&#038;tag=de0d-21&#038;index=aps&#038;linkCode=as2&#038;camp=3370&#038;creative=23322\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/03\/C-Corso-Completo-di-Programmazione-kernighan-ritchie-devAPP.jpg\" alt=\"C-Corso-Completo-di-Programmazione-kernighan-ritchie-devAPP\" title=\"C-Corso-Completo-di-Programmazione-kernighan-ritchie-devAPP\" width=\"54\" height=\"75\" class=\"alignleft size-full wp-image-7803\" \/><\/a> <a href=\"http:\/\/www.amazon.it\/gp\/search\/ref=as_li_qf_sp_sr_il_tl?ie=UTF8&#038;keywords=887192200X&#038;tag=de0d-21&#038;index=aps&#038;linkCode=as2&#038;camp=3370&#038;creative=23322\" target=\"_blank\"><strong>Il linguaggio C. Principi di programmazione e manuale di riferimento (Accademica) <\/strong><\/a><br \/>\n<em>Brian W. Kernighan &#8211; Dennis M. Ritchie<\/em><br \/>\n<strong>Editore:<\/strong> Pearson | <strong>Lingua:<\/strong> Italiano | <strong>Brossura:<\/strong> 313 pagine<br \/>\n<strong>Prezzo Listino:<\/strong> <del datetime=\"2011-09-03T10:00:08+00:00\">EUR 27,00<\/del><br \/>\n<strong>Prezzo Promozione:<\/strong> EUR 22,95 con Spedizione gratuita<\/p>\n<p><a href=\"http:\/\/www.amazon.it\/gp\/product\/8850329547\/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&#038;tag=de0d-21&#038;linkCode=as2&#038;camp=3370&#038;creative=23322&#038;creativeASIN=8850329547\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2011\/09\/C-Corso-Completo-di-Programmazione-Deitel-Deitel-devAPP.jpg\" alt=\"C-Corso-Completo-di-Programmazione-Deitel-Deitel-devAPP\" title=\"C-Corso-Completo-di-Programmazione-Deitel-Deitel-devAPP\" width=\"54\" height=\"75\" class=\"alignleft size-full wp-image-7550\" \/><\/a> <a href=\"http:\/\/www.amazon.it\/gp\/product\/8850329547\/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&#038;tag=de0d-21&#038;linkCode=as2&#038;camp=3370&#038;creative=23322&#038;creativeASIN=8850329547\" target=\"_blank\"><strong>C. Corso completo di programmazione<\/strong><\/a><br \/>\n<em>Paul J. Deitel &#8211; Harvey M. Deitel<\/em><br \/>\n<strong>Editore:<\/strong> Apogeo | <strong>Lingua:<\/strong> Italiano | <strong>Brossura:<\/strong> 640 pagine<br \/>\n<strong>Prezzo Listino:<\/strong> <del datetime=\"2011-09-03T10:00:08+00:00\">EUR 39,00<\/del><br \/>\n<strong>Prezzo Promozione:<\/strong> EUR 33,15 con Spedizione gratuita<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/supporto-applicazioni\/le-applicazioni-dei-nostri-autori\/parole-vietate-di-ignazio-calo\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/02\/bannerIgnazioc.png\" alt=\"\" width=\"480\" height=\"100\" \/><\/a><br \/>\n<\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prima di addentrarci nei dettagli del linguaggio C, vediamo quali sono gli strumenti necessari e come fare&#8230;<\/p>\n","protected":false},"author":53,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[569],"tags":[593,588,241,637,638,7,636],"class_list":["post-6373","post","type-post","status-publish","format-standard","hentry","category-corso-completo-di-c","tag-corso-completo-di-c-2","tag-corso-di-c","tag-ignazio-calo","tag-programmare-c-mac","tag-programmazione-c-windows","tag-strumenti-di-sviluppo","tag-strumenti-programmazione-c-linux"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/6373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=6373"}],"version-history":[{"count":11,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/6373\/revisions"}],"predecessor-version":[{"id":7808,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/6373\/revisions\/7808"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=6373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=6373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=6373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}