Newsgroup: it.comp.lang.c
Titolo: Un manuale di C

Probabilmente se ne sarà già discusso, in genere questo è un argomento che 
in genere spunta più volte.
Quale è un buon manuale di C?
Io, a parte le risorse on line, in casa ho solo una stampa di "Tricky C" 
(che è cmq una risorsa online)  per via del capitolo riguardante il 
collegamento con il Clipper, linguaggio che ho usato per anni per sviluppare 
applicazioni gestionali su macchine 386, 486 e sui primi Pentium.
Ora il Clipper è defunto, perlomeno lo è per me, mi chiedevo cmq se esiste 
un altro manuale di C un po' più contemporaneo da cui attingere 
informazioni.
Non tanto sull'albero sintattico del linguaggio, quanto sul capire perché la 
tale applicazione idiota si impalla in modo strano.
Ad esempio, ultimamente sto perdendo un sacco di tempo con gli array 
multipli di caratteri e l'inserimento di interi in questi array e non riesco 
a capire se è un problema della piattaforma, io uso Dev-C++, 
dell'allocazione della memoria o dell'aritmetica dei puntatori.
O di tutti e tre insieme...
.. 

 Quale è un buon manuale di C?
Questa è la Bibbia del C:
http://plan9.bell-labs.com/cm/cs/cbook/
Non è facilissmo...
-- 
"Mai sottostimare la larghezza di banda di un camioncino che sfreccia a
razzo sull'autostrada" 
Andrew S. Tanenbaum
python -c "print 'bG9ybWF5bmFAZ21haWwuY29t'.decode('base64')"

 O di tutti e tre insieme...
Eh...sai, non è facile trovare manuali che insegnino come _non_ program-
mare, anche se spesso vengono presi in considerazione gli errori più
comuni di programmazione. Io ancora non ho capito quali siano le tue
vere necessità e quale sia il tuo vero livello di perizia come informa-
tico. Perchè avrei scommesso di poterti dare dei consigli, ma se parli
di programmazione di macchine 386 probabilmente ne sai più di me.
Ma facciamo finta che questo non conta, ti consiglio il miglior libro
sul C moderno esistente, e mi perdonino Kernighan e Ritchie, ma il loro
fascicolo sul C è si d'importanza storica, ma non è un libro che consi-
glierei mai, se non per qualche dritta che è bene ascoltare da
persone che portano quei nomi. Il libro in questione è questo:
http://www.apogeonline.com/libri/9788850328697/scheda
traduzione del libro più conosciuto col titolo originale:
http://www.amazon.com/C-Programming-Modern-Approach-2nd/dp/0393979504/ref=sr_1_3?s=gateway&ie=UTF8&qid=1284814675&sr=8-3
In generale preferisco le edizioni originali, ma in questo caso la
traduzione fa risparmiare qualche decina di euro. Ho visto in Italia
l'edizione in inglese e arrivava a più di 105€..
mi è sembrato un prezzo esagerato...
Cos'ha di buono di questo libro? Tutto. Veramente Tutto.
Ed è aggiornato al C99 (Standard inesistente al tempo della seconda
edizione del Kernighan e Ritchie, ovviamente, essendo dell'88).
Parlano bene, contrariamente alle mie aspettative, anche del libro
_sul C_ dei Deitel:
http://www.amazon.com/C-Program-Paul-J-Deitel/dp/0136123562/ref=sr_1_1?s=gateway&ie=UTF8&qid=1284814939&sr=8-1
ma anche qui, tanti soldi. Mi pare che esista la traduzione in italiano,
ma non dell'ultima edizione:
http://www.apogeonline.com/libri/9788850326334/scheda
Il libro dei Deitel non lo conosco comunque, vedo che è consigliato
come un'alternativa, da gente più esperta di me.
Quando capirai di essere un bravo programmatore e avrai una minima
padronanza dell'inglese, allora avrai bisogno solo di un manuale
tecnico di riferimento. Ripeto _riferimento_, perchè il libro che sto
per linkare non è un tutorial, non è per niente previsto che si impari
il C su questo libro:
http://www.amazon.com/Reference-Manual-Samuel-P-Harbison/dp/013089592X/ref=sr_1_1?s=gateway&ie=UTF8&qid=1284815240&sr=8-1
Che, dopo lo Standard, è il riferimento più autorevole in circolazione.
-- 
Non puoi insegnare qualcosa ad un uomo. You cannot teach a man anything.
Lo puoi solo aiutare   --  Galileo  Galilei  --   You can only help him
a scoprirla dentro di sé.                        discover it in himself.
Vincenzo Mercuri

Visto che siamo in tema di riferimenti consigliati, forse rischio un
po' l'OT, ma vorrei consigliare a tutti, a chi ancora non la conoscesse,
l'opera di _Daniele Giacomini_:
gli "Appunti di Informatica Libera":
http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/HTML/a2.htm
(questa è la versione più aggiornata, ma è online: in alto c'è l'indice
generale, a prima occhiata può sfuggire)
E' un'opera enciclopedica sull'informatica e l'amministrazione
del personal computer in generale, disponibile gratuitamente.
Parla anche di linguaggio C comunque. Non so se in altre parti
del mondo ci siano cose del genere...lo so che esagero, ma questi
appunti faranno la felicità di molti.
Versione PDF o altri formati:
http://ia341333.us.archive.org/2/items/AppuntiDiInformaticaLibera/
anche qui si puo' trovare qualcosa sul C, ma è materiale che conosco
poco: 
http://www.cerca-manuali.it/manuale-guida/c.htm



Visto che la domanda riguardava specificamente la parte di risoluzione 
degli errori, aggiungo anche:
http://www.amazon.com/Debugging-Development-Process-Practical-Strategies/dp/1556156502
 
(è così utile che lo raccomando persino sapendo che usa la notazione 
ungherese!)
http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298
L'idea è di esaminare in dettaglio i punti più oscuri (nel senso, 
trascurati/fraintesi) del C, tra cui per esempio un bel po' di roba 
proprio sugli array

Grazie a tutti per i suggerimenti.
Lunedģ vado all'universitą e faccio un giro in biblioteca.
.. 

 a capire se è un problema della piattaforma, io uso Dev-C++,
Dev-C++ non è più manutenuto dal 2005 e la versione 5 è rimasta 
perennemente in beta, anche la relativa mailing list un tempo abbastanza 
attiva ora langue. Posso suggerirti di usare Code::Blocks? E' un IDE 
open source indipendente dal compilatore, è multipiattaforma, è 
attivamente sviluppato e per windows c'è anche un pacchetto già dotato 
di MinGW, lo stesso che viene fornito con Dev-C++ con la differenza che 
quello fornito con Dev-C++ è d'annata - si porta appresso gcc 3.4.2, 
quella attualmente scaricabile con C::B è la 4.4.1!
A parte gli eventuali bachi del compilatore nelle versioni vecchiotte di 
MinGW c'erano windows.h e corollario (se mai dovessi usarli) dove era 
più la roba che mancava che quella presente, e se doversi definire una 
costante mancante è una scocciatura quando cominciano a mancare 
strutture e prototipi di funzione delle librerie di sistema (che magari 
sono assenti anche nei relativi file .a e poi il linker ti ringrazia...) 
diventa una rogna.
-- 
r--r--r--

ReadOnly ha scritto:

Provate anche il MinGW Developer Studio:
http://koti.mbnet.fi/vaultec/mingwstudio.php
In versione "Experimental" usa il GCC 4.5.0 e GDB 7.1
