Newsgroup: it.comp.lang.c++
Titolo: Ciclo for e dichiarazione-definizione variabili

Ho questo ciclo di for:
for (int i=x2<x?x-1:x+1, int j=y2<y?y-1:y+1 ; (i<MAX) || (j<MAX) ; 
                                         x2<x?i--:i++, y2<y?y--:y++)
compilando mi restituisce 2 warning:
'int ' : storage-class or type specifier(s) unexpected here; ignored
nonstandard extension used : qualifiers after comma in declarator list
are ignored
mentre se dichiaro le variabili prima del ciclo tutto funzia
regolarmente...
in poche parole dovrebbe essere la j a dare problemi e non capisco il
perchč.
sapete darmi una spiegazione?
--
Ho trovato un sito eccezionale: te poi scarica' la coscienza. 
S. Disegni
Clicca sul link per contattarmi direttamente da ICQ
http://msg.mirabilis.com/scripts/contact.dll?msgto=32405502

 are ignored
Stai cercando di entrare nel Guinness dei primati per il maggior numero 
di istruzioni infilate in un for? Comunque il problema e' che la virgola 
  ha un significato diverso a seconda che si trovi in una definizione 
piuttosto che in un'espressione di altro tipo.
Ciao,
Nicola

                                          x2<x?i--:i++, y2<y?y--:y++)
perché non provi a scrivere un po' piů pulito? Questa non č una critica
personale a te, ma in generale, vedo che sono molti i programmatori che
danno poca importanza alla scrittura di un codice pulito, chiaro, con nomi
di variabili e di funzioni che non dicono nulla, tipo:
int a, b, c, d, f, kk, cc, aa; -> che poi nessuno sa a che cosa servono,
oppure perdono tre giorni solo per capire a cosa serve ciň che č stato
scritto!
Non abbiate paura ad essere prolissi, qualche riga in piů, non fa male. Anzi
aiuta a rendere quello che si scrive manuntenibile e riutilizzabile da te e
da altri nel corso degli anni, e questa non č una cosa da poco.
--
Ciao.
Maurizio
P.S.: eliminare _!NO$PAM! per rispodere in privato

Scusate, fate finta di non aver letto nulla :O


di istruzioni infilate in un for? 
Veramente era la via più breve per risolvere il mio problema  :)


perché non provi a scrivere un po' piů pulito?
hai perfettamente ragione, ma io per abitudine uso dare a "i" il
significato di riga e "j" colonna (come molti penso)... quindi non ho
problemi nel rileggere poi il programma.....
cmq me idiota, ho capito ke sbagliavo... non siate troppo cattivi mi
raccomando :))


E' curioso come certi problemi compaiano a breve distanza di tempo su 
newsgroup distinti, in modo presumibilmente indipendente. Guardate un 
po' qui: 
http://groups.google.com/groups?selm=c6Rk9.3805%246d6.89611570%40newssvr14.news.prodigy.com
Ciao,
Nicola

po' qui: 
Scusa, ma questo che c'entra? Mi sembra abbastanza diversa la
situazione...


 situazione...
Invece e' proprio lo stesso problema: in una dichiarazione la virgola 
separa le entita' dichiarate; per questo nel tuo caso si lamenta per la 
presenza del secondo "int", mentre in quello che ho postato da' valore 
di dichiarazione a "f2()".
Sia tu che l'autore dell'altro messaggio vi aspettavate invece 
un'applicazione dell'operatore virgola, per far valutare due espressioni 
distinte in una singola istruzione.
Ciao,
Nicola

 qualifiers after comma in declarator list are ignored
bé, il compilatore stesso te l'ha detto.. devi levare il secondo int,
quello prima di j.
scrivendo così la dichiarazione-definizione:
for (int i=x2<x?x-1:x+1, j=y2<y?y-1:y+1; ecc ecc..
--
Lupin85©
Azzurranet IRC: +#afiad, @#fils - ICQ: 91528290
Mail: Remove PAN to contact me
- "It is not important what you believe, only that you believe." -