[Tech] Compilatore cc

Leonardo Boselli leo@dicea.unifi.it
Lun 23 Apr 2001 15:49:52 CEST


On 23 Apr 2001, at 9:52, Franco Bagnoli wrote:
> On Sun, 22 Apr 2001, Leonardo Boselli wrote:
> > e inoltre mettiamo che abbia:
> > int ** a;
> > #DEFINE CAMPO1 0
> > #DEFINE CAMPO2 1
> > #DEFINE CAMPO3 3
> > ... chi mi dice che 
> > CAMPO1[a[i]] sia meno leggibile che
> > a[i][CAMPO1] o di a[i].CAMPO1 o a[i]->CAMPO1 ??????
> 
> CAMPO1[a[i]] ===  *(a[i]+CAMPO1) === a[i][CAMPO1]
> 
> quindi a[i] e' un puntatore
> 
> a[i].CAMPO1 e a[i]->CAMPO1 non funzionano (se CAMPO1 e' #definito 
> come un numero) 

e`ovvio ... ma la cosa interessante e`che nel primo modo con 
occorre definire una struttura .... 
quello che volevo dire e`che
CAMPO2[a[i]] === a[i][CAMPO2]
viene letto come "ïl campo2 dell' iesimo record" che in italiano 
suona mweglio che "record iesimo, campo2"
(dovrebbe funzionare anche CAMPO2[i[a]] a questo punto o no ?)
 > Per quanto riguarda la leggibilita': probabilmente 
> CAMPO1[a[i]] e' abbastanza leggibile, ma il problema e' che 
> la manutenzione diventa difficile: chiunque legga il codice rimane
> frastornato dall'accoppiata 
> #define CAMPO1 0
> CAMPO1[a[i]]
> 
> 
> Casomai potresti definire 
> #define CAMPO1(v) v[0]  
> CAMPO1(a[i]) = 5;
> che ha lo stesso effetto ma e' piu' leggibile
a parte i due tipi diversi di parentesi
Leonardo Boselli (NIT)
Dipartimento Ingegneria Civile
Universita` di Firenze
Via Santa Marta 3
I-50139 Firenze
+39()055-4796-431




Maggiori informazioni sulla lista flug-tech