Funktionen mit void ?

Ü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.