В C обычно это делается с помощью указателей:
int foo(int x, int y, int z, int* out);
Здесь функция возвращает одно значение и использует out
для «возврата» другого значения.При вызове этой функции необходимо предоставить параметру out
указатель, указывающий на выделенную память.Сама функция, вероятно, будет выглядеть примерно так:
int foo(int x, int y, int z, int* out) {
/* Do some work */
*out = some_value;
return another_value;
}
И, вызывая ее:
int out1, out2;
out1 = foo(a, b, c, &out2);