Come restituire più valori?

Nel linguaggio C++, non puoi semplicemente prendere e restituire due valori da una funzione, non puoi nemmeno accettarli, non esiste un tale meccanismo nel linguaggio. Ma ci sono strutture! Una funzione può accettare uno struct, restituire uno struct e possiamo assegnare uno struct. Facciamo una funzione che prende due numeri, ne trova la somma, la differenza e il prodotto e restituisce il risultato. Descriviamo la struttura:
struct MyStruct 
      int valSum; 
      int valSub; 
      int valMul;
};
Memorizza la somma, la differenza e il prodotto. Ora creiamo una funzione che prende due numeri, conta, inserisce il risultato in una struttura e restituisce il tipo di dati MyStruct.
MyStruct compute(int val1, int val2) 
      MyStruct str; 
      str.valSum = val1 + val2; 
      str.valSub = val1 - val2; 
      str.valMul = val1 * val2; 
      return str;
}
Puoi usarlo in questo modo:
void setup() 
      Serial.begin(9600); 
      MyStruct str; 
      str = compute(5, 7); 
      Serial.println(str.valSum); 
      Serial.println(str.valSub); 
      Serial.println(str.valMul);
}
Una funzione che valuta e restituisce una struttura può essere ridotta a una sola riga di codice.:
MyStruct compute(int val1, int val2) 
      return (MyStruct) {val1 + val2, val1 - val2, val1 * val2};
}
Crea il tuo sito web gratis! Questo sito è stato creato con Webnode. Crea il tuo sito gratuito oggi stesso! Inizia