[Lugge] Re: Quesito biricchino di programmazione in C (birrain palio)
- From: "Roberto A. Foglietta" <me@xxxxxxxxxxxxxxxxxxxxxx>
- To: lugge@xxxxxxxxxxxxx
- Date: Wed, 09 Jun 2004 17:33:47 +0200
asettico ha scritto:
Roberto A. Foglietta wrote:
Roberto A. Foglietta ha scritto:
Fine del gioco e doppia figura di merda per me:
Viva la sincerità! ;-) Secondo me, proprio te meriti la birra in premio,
se non altro per aver ammesso la tua non paternità... O:-)
No, sulla paternità non ho dubbi ho sviluppato quella soluzione in
maniera indipendente. Purtroppo è piuttosto difficile dimostrarlo quando
la soluzione è (mi hanno detto ma non ho verificato) persino presente
nel K&R. Il fatto è che ho imparato a programmare in C quando avevo 13
anni e non ho mai aperto un libro sul C, sul C++ sì ma sul C in se per
se mai.
Il problema me lo posi quando ancora lavoravo a Genova e lo risolsi il
giorno dopo. La mattina mi svegliai ed andando al lavoro, fermo ad un
semaforo, ebbi l'illuminazione. Non ho mai pensato che una cosa simile
davvero fosse diffusa... pensavo che fosse una mia personalissima sega
mentale.
Oggi ne ho avuto di nuovo bisogno e così ho pensato di fare un po' di
show... sono stato superficiale, avrei dovuto controllare... almeno su
google!
- mi hanno detto che la soluzione do { ... } while(0) è usata spesso
nel kernel
Interessante, ma implica l'inizializzazione di un ciclo e la valutazione
di una condizione. A questo punto, starà alla bontà del compilatore
accorgersi che la condizione è sempre falsa ed il ciclo può non essere
inizializzato.
??? eventualmente con -03 il compilatore non inizia nessun ciclo ma il
codice viene compilato correttamente cioè, ignornado il ciclo ma
mantenendo le parentesi graffe. Che poi era lo scopo del trucchetto!
Anche in questo mare di TB, governato da correnti di GHz, qualche ciclo
risparmiato a volte può essere comodo... (belan, come sono poetico...
ROTFL :-D ), specialmente in un kernel.
Ma può anche essere che il tutto sia annegato nella solita define di debug.
Non credo che si faccia un uso così intensivo di questa cosa, e
comunque l'apertura di un ciclo di while richiede molti meno cicli di
clock che non il passaggio ad una funzione con tutto quello che comporta!
Ciao,
--
Roberto A. Foglietta
http://roberto.foglietta.name
http://lugge.net
ICQ#: 108718257
========----------
Prima di scrivere in m-list per favore leggi il regolamento
http://www.lugge.net/soci/index.php?link=manifesto
Archivio delle e-mail postate in lista
//www.freelists.org/archives/lugge/
Modifica dell'account sulla lista LUGGe
http://www.lugge.net/soci/index.php?link=manifesto.htm#list
Other related posts: