| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  21-04-2010, 23:48 | #1 | 
| Member Iscritto dal: Jan 2010 
					Messaggi: 162
				 | 
				
				[C]Cosa significano questi simboli?
			 
		la funzione è molto semplice ma,essendo alle prime armi, alcuni simboli non li conosco e non ho idea di cosa facciano. int MCD(int a, int b) { return (b ? MCD(b,a%b) : a); } 1)cosa è quel ? subito dopo b??? 2)a%b dovrebbe prendere il resto della divisione a/b giusto? 3): a cosa sono quei due punti? grazie 
				__________________ Acer 5920g: T7500 GeForce 8600GT 2GB DDR2 250HDD | 
|   |   | 
|  21-04-2010, 23:59 | #2 | 
| Senior Member Iscritto dal: Jul 2002 Città: Provincia Tv 
					Messaggi: 1208
				 | 
		Dovrebbe essere l'operatore '?'. E' l'unico operatore ternario del linguaggio. E' un vecchio costrutto che ormai non si usa piu'. La semantica e': Codice: int MCD(int a, int b)
{ 
   if (b) 
      return MCD(b,a%b)
   else  ;
      return a
} | 
|   |   | 
|  22-04-2010, 00:25 | #3 | 
| Senior Member Iscritto dal: Jul 2009 Città: Varès 
					Messaggi: 658
				 | Codice: int MCD(int a, int b) { 
   return (b ? MCD(b,a%b) : a);
} | 
|   |   | 
|  22-04-2010, 01:33 | #4 | 
| Member Iscritto dal: Jan 2010 
					Messaggi: 162
				 | 
				__________________ Acer 5920g: T7500 GeForce 8600GT 2GB DDR2 250HDD | 
|   |   | 
|  22-04-2010, 07:36 | #5 | 
| Senior Member Iscritto dal: Nov 2005 
					Messaggi: 2777
				 | 
		
No, il contrario: if(b!=0) Questo perché in C il valore 0 viene considerato false (ha tutti i bit a zero) mentre ogni altro valore è considerato true (hanno almeno un bit a uno). Comunque non credo che l'operatore ternario non si usi più, mi sembra un'affermazione un po' forte. | 
|   |   | 
|  22-04-2010, 08:21 | #6 | 
| Senior Member Iscritto dal: Jul 2002 Città: Provincia Tv 
					Messaggi: 1208
				 | 
		Mai detto che non si usa piu'. Dico solo che era di moda 20 anni fa, adesso viene usato piu' raramente, almeno dal codice che vedo io.
		 | 
|   |   | 
|  22-04-2010, 10:44 | #7 | |
| Senior Member Iscritto dal: Jul 2009 Città: Varès 
					Messaggi: 658
				 | Quote: 
     il '?:' è uno dei dettagli che ti fanno capire quando hai a che fare con un programmatore a cui non importa se nessuno poi capirà il suo codice ma importa solo scriverlo in modo elegante e raffinato. un po' come Codice: valore_minimo = array[puntatore_a_lista->elemento = valore]; ndr: se dico che guardi codici di basso livello, lo dico scherzosamente, non te la prendere ndr2: esprimo esplicitamente quanto qui sopra perchè a volte c'è gente che ha poco senso dell'umorismo   | |
|   |   | 
|  22-04-2010, 10:55 | #8 | 
| Senior Member Iscritto dal: Jul 2002 Città: Provincia Tv 
					Messaggi: 1208
				 | 
		D'accordissimo con te.... fosse per me lo deprecherei dato che rende il codice ancora piu' criptico di quello che e'. Molto meglio il buon vecchio if...then.... else. | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 15:06.









 
		 
		 
		 
		








 
  
 



 
                        
                        










