QUOTE(wcypierre @ Nov 6 2011, 03:04 PM)
yeah. but still type casting what

Since you're so good at it, now, show me how to put multiple variables with different data types into one variable and return it

I have a little suggestion here.
lets say you have 4 type which are int, char, double, float
1. Remember that your variable is declared in function which their memory will be reclaim once returned, but not erase. So the easy way will be return a pointer of the first variable you assign which is the "int", by then point to after int will give u the char, double, float and so on.
2. The actual way which is safe, is to use "malloc" and give it a sizeof(int+char+double+float) which will return u a pointer that can be returned and use. The pointer is a "void" pointer which you can use as anything, which allows u to determine how is it. But remember do use "free" once u finish or else memory leak might occur.