Как создать функцию, возвращающую результат нескольких типов переменных в C?

Просто начал изучать C из руководства по разработке Cocoa, и мне было интересно, как (если это вообще возможно) я вернул бы результат функции с несколькими типами переменных. Например, у меня есть простая математическая функция, которую я сделал, чтобы практиковать то, что я читаю, и дал несколько типов переменных:

#include  float doMath (int variable1, float variable2, int variable3, float variable4); main() { printf ("Math is fun!!\n"); float theMath = doMath (2, 3.66, 9009, 7.990); printf ( "Result = %f\n", theMath ); } float doMath (variable1, variable2, variable3, variable4) { return (variable1 * variable2) + (variable3 - variable4); } 

Как я могу использовать несколько типов переменных правильно в одной функции / уравнении? Кроме того, я не уверен, что синтаксис обратной линии тоже верен … Я вроде как просто взял удар.

Во-первых, вы не ставите определение функции внутри функции main() . Сделайте это снаружи. И вы можете захотеть поместить int main() вместо основного, и return 0 в конце int main()

Затем просто назначьте переменную float для хранения результата и верните его.

 #include  float doMath (int variable1, float variable2, int variable3, float variable4); int main() { printf ("Math is fun!!\n"); float theMath = doMath (2, 3.66, 9009, 7.990); printf ( "Result = %f\n", theMath ); return 0; } float doMath (int variable1, float variable2, int variable3, float variable4) { float answer = (variable1 * variable2) + (variable3 - variable4); return answer; } 

Вы не можете возвращать несколько типов. Но вы можете вернуть союз (или, возможно, еще лучше структуру, содержащую индикатор типа и объединение).

 typedef union { int i; float f; } multi; typedef struct { short type; multi m; } multitype; multitype f(int arg1, ...); 

Конечно, тогда вам нужно управлять polymorphismом вручную.