Functions generated by the C coder return void, so in fact nothing, but the values returned by the matlab function are 'returned' via pointers or arrays which come last in the arguments and which have their value set in the generated C code. This is done like this because matlab functions can return multiple values which you cannot do straightforward in C except by returning e.g. a struct or so.
Suppose your matlab function is
function [x,y] = Foo(a)
x = a + 1.0
y = 5 * ones(1,3)
then the generated C function declaration should be something like
void Foo(real_T a, real_T *x, real_T y[3]);
and if you call it like
real_T x;
real_T y[3];
Foo(0.0, &x, y);
then x will be set to 1.0 and y will be an array with all elements set to 5.