Kate McCallister: Com'è potuto succedere? L'abbiamo dimenticato!
Peter McCallister: Non l'abbiamo dimenticato. Abbiamo solo contato male.
Kate McCallister: Che razza di madre sono?!
lo zio Frank: Se ti può far sentire meglio... io ho dimenticato gli occhiali..
(...una premessa: questo post è un remake di un mio vecchissimo post. Ma, anche se tratta lo stesso argomento, amplia e aggiorna un po' il discorso è mi è sembrato il caso di riproporlo. Leggete e mi direte...)
Vorrei proporvi un piccolo test: aprite un editor e, assolutamente senza consultare google o codice già scritto o manuali o IA varie, provate a scrivere una funzione atoi(3) in C. E non vi spiego cos'è la atoi(3), perché se non vi suona familiare avete già fallito il test.
Nel caso che vi sia suonata familiare la misteriosa funzione, dovreste scrivere un piccolo main() che chiami la vostra funzione passandogli un parametro fisso, e che scriva a video il risultato ritornato. E non perdete tempo a scrivere un programma interattivo che gestisca l'input: l'obiettivo è solo scrivere una atoi(3) funzionante, nient'altro.
![]() |
...Com'è potuto succedere? Abbiamo dimenticato l'atoi(3)!... |
Bene, se per eseguire il test ci avete messo più di 5 minuti (e vabbé, sarò generoso: 10 minuti! Crepi l'avarizia!) direi che avete bisogno di una sana rinfrescata delle basi del C. Non sorprendetevi, magari uno usa il C spesso, e magari scrive anche cose complicate, però, grazie al cut&paste di codice scritto precedentemente, oppure grazie ad esempi trovati in rete (ho detto stackoverflow.com?) è possibile che uno, alla lunga, si dimentichi di come si fanno le cose semplici.
E che nessuno di quelli che non ce l'hanno fatta si offenda: siete in buona compagnia. E sennò, perché pensate che vi sto proponendo proprio questo test? Vi racconto una storia: una quindicina di anni fa mi hanno dato un foglio e una penna (ancora più difficile! Neanche un PC con un compilatore per provare!) e mi hanno detto "Scrivi una atoi(3)". Ebbene si: l'ho scritta e l'ho "cannata" clamorosamente! La sera stessa ho tirato fuori dalla libreria il K&R (Kernighan & Ritchie, la vera Bibbia del C) e ho cominciato a rileggerlo, dalla prima all'ultima pagina (erano molti, molti, molti anni che non lo rileggevo interamente): è stata una gran sorpresa, c'erano argomenti che non ricordavo neanche che venivano trattati, e ho riscoperto parti dimenticate del C che per (cattiva) abitudine non usavo da tempo.
Ehm... ovviamente proprio prima di scrivere questo articolo mi sono auto-obbligato a fare un test atoi(3) a sorpresa e, fidatevi, questa volta ce l'ho fatta (del resto, se non ci fossi riuscito, non avrei avuto il coraggio di scrivere questo post...).
Meditate gente, meditate...
Ciao, e al prossimo post!
P.S.
Nel prossimo articolo, anche se parlerò d'altro, vi proporrò la versione più efficiente e stringata possibile della atoi(3), così potrete confrontarla con quella che avete scritto voi (sempre se ci siete riusciti in meno di 10 minuti, ah ah ah).