C Generic Function Return Type