Über den Rückgabewert geht nur eine Variable. Wenn man mehrere Werte zurückgeben muss, kann man Referenzen oder Zeiger als Parameter verwenden.
z.B.:
void func(int* ret1, int* ret2)
{
*ret1 = 5;
*ret2 = 3;
}
void loop()
{
int ret1 = 0;
int ret2 = 0;
func(&ret1, &ret2);
}
Normalerweise werden Parameter call-by-value übergeben und eine Kopie erstellt. Die Funktionen können als die Parameter nicht verändern. Hier werden die Parameter call-by-reference übergeben und man kann sie ändern.
Alternativ mit Referenzen statt Zeigern:
void func(int &ret1, int &ret2)
{
ret1 = 5;
ret2 = 3;
}
void loop()
{
int ret1 = 0;
int ret2 = 0;
func(ret1, ret2);
}
Referenzen sind abgespeckte Versionen von Zeigern, aber hier reicht das und man muss nicht viel ändern.