| 	
	
	
		
		|||||||
  | 
		
| 
 | 
![]()  | 
	
	
| 
		 | 
	Strumenti | 
| 		
			
			 | 
		#1 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
			
			 
				
				gcc e i suoi warnings
			 
			
		ma cosa hanno fatto al gcc ?  
		
	
		
		
		
		
			![]() adesso ti avvisa anche sulle % errate delle printf ma non piu´ su indici modificati dentro i cicli ? Gia´ lo faceva il turbo C della Borland non capisco perche´ non ci sia il warning nel gcc. Per errore ho fatto una cosa cosi´: Codice: 
		for (Idx = 1; Idx <= n; Idx++)
	{
		... righe e righe di codice ...
		for (Idx = 0; Idx < NN; Idx++)
			...
	}
per capire dove cacchio era il problema il bello e´ che nel secondo ciclo non entra mai ma Idx viene inizializzato a 0 lo stesso quindi non esce mai dal primo ciclo. 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#2 | ||
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Apr 2000 
				Città: Roma 
				
				
					Messaggi: 15625
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 Quote: 
	
 
				__________________ 
		
		
		
		
	
	0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12  | 
||
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#3 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Nov 2005 
				Città: TO 
				
				
					Messaggi: 5206
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 Così come non ti può segnalare che qui: char *s = NULL; *s = 'a'; stai facendo un macello. 
				__________________ 
		
		
		
		
	
	Andrea, SCJP 5 (91%) - SCWCD 5 (94%)  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		perche´ sto modificando un indice di un ciclo all´interno del ciclo E´ pericoloso e infatti  mi son giocato la mattina per una distrazione. 
		
	
		
		
		
		
			A me sembra giusto un avviso. 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#5 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 Cioe´, il secondo ciclo non viene eseguito ma rompe comunque i maroni al primo 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#6 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#7 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Apr 2000 
				Città: Roma 
				
				
					Messaggi: 15625
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		
Il warning è sbagliato. Il codice che hai scritto è non solo corretto, ma anche teoricamente possibile (come è possibile modificare la variabile di un ciclo for dentro il blocco stesso).
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#8 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Nov 2005 
				Città: TO 
				
				
					Messaggi: 5206
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		
Per curiosità ho provato adesso su un "vecchio" Borland C++ 3.1 e mettendo i warning a All non mi segnala nulla sul doppio for come il tuo.
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	Andrea, SCJP 5 (91%) - SCWCD 5 (94%)  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#9 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Apr 2000 
				Città: Roma 
				
				
					Messaggi: 15625
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 mmap(NULL, 4096, PROT_WRITE|PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0); sprintf(NULL, "ciao\n"); write(fileno(stdout), NULL, strlen(NULL)); 
				__________________ 
		
		
		
		
	
	0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#10 | ||
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 Codice: 
	while( c = memchr(...)) Quote: 
	
 ![]() o forse era solo per dare la colpa a qualcun altro 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
||
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#11 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 e questa dove l´hai trovata ??? 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#12 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Apr 2000 
				Città: Roma 
				
				
					Messaggi: 15625
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		
Perché le forma "if (a=b)" sono molto spesso degli errori di scrittura, tali da giustificare il warning. Inoltre se leggi bene il warning non ti viene detto che il codice è sospetto, ma ti viene suggerito di utilizzare parentesi ulteriori per indicare che _effettivamente_ intendi scrivere una assegnazione. Se scrivi while ( (c=memchr()) ) non ottieni alcun warning!
		 
		
	
		
		
		
		
			
				__________________ 
		
		
		
		
	
	0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#13 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Apr 2000 
				Città: Roma 
				
				
					Messaggi: 15625
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		
Il c non ha un vero puntatore nullo. NULL è definito come "0", ma nello standard C nessuno dice che 0 è un indirizzo...vietato  
		
	
		
		
		
		
			Per lo stesso motivo, una mmap che fallisce non restituisce 0 (NULL), ma ~0 (0xffffffff) ! (e sbaglia anche la mmap, ma la scelta è giustificata dal fatto che la mmap non può restituire legalmente quel valore) 
				__________________ 
		
		
		
		
	
	0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#14 | 
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Nov 2005 
				Città: TO 
				
				
					Messaggi: 5206
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 
		
Era per fare un esempio .....  
		
	
		
		
		
		
			Se mi vai a smanettare con il memory management.... non vale!! 
				__________________ 
		
		
		
		
	
	Andrea, SCJP 5 (91%) - SCWCD 5 (94%)  | 
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#15 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 secondo me vanno in tilt le poste italiane  
		
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#16 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 che sia possibile modificarli son d´accordo ma resta sempre una tecnica sporca e poco leggibile. Per me, ovviamente 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#17 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Jul 2002 
				Città: Reggio Calabria -> London 
				
				
					Messaggi: 12112
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 ![]() e perchè il warning dovrebbe essere sbagliato? Eclipse avvisa per ogni tipo di possibili errori... compresi ovviamente quelli citati in questo thread. E vi assicuro che aiutano moltissimo questi warning (come può ben testimoniare trallallero   )
		
				__________________ 
		
		
		
		
	
	 
			 | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#18 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: May 2006 
				Città: Wursteland 
				
				
					Messaggi: 1749
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 ma poi cosa c´entra Eclipse ? e´ il compilatore che usa che dovrebbe avvisarti 
				__________________ 
		
		
		
		
	
	Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#19 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Apr 2000 
				Città: Roma 
				
				
					Messaggi: 15625
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 
				__________________ 
		
		
		
		
	
	0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
| 		
			
			 | 
		#20 | |
| 
			
			
			
			 Senior Member 
			
		
			
				
			
			
			Iscritto dal: Jul 2002 
				Città: Reggio Calabria -> London 
				
				
					Messaggi: 12112
				 
				
				
				
				 | 
	
	
	
	
		
		
		
		 Quote: 
	
 cmq immagino che anke con il CDT il livello di warning sia configurabile a piacere warning per warning come si può fare in col JDT. 
				__________________ 
		
		
		
		
		
			 
			Ultima modifica di ^TiGeRShArK^ : 18-06-2007 alle 18:06.  | 
|
| 
		
 | 
	
	
	
		
		
		
		
		
		
			 
		
		
		
		
		
		
			
			
		
	 | 
		
		  
	   | 
| Strumenti | |
		
  | 
	
		
  | 
Tutti gli orari sono GMT +1. Ora sono le: 04:37.









		
		
		




		
			
 
 







