[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