Quote Originally Posted by poornaMoksha View Post
Is it that only the address is used while calling if function is defined in a separate file? And since name of the function(which represents address) remains the same so we can change return type and arguments?
Striaght up... what is it with all these people just lately who seem obsessed with finding loopholes in their compilers?

When you do stuff like this you are playing with "undefined behavior" which can mean two things...
1) The result will be unpredictable ... Which function actually gets called???
2) It will probably only work on your compiler, others may do something different.

C does not support function or operator overloading (that's C++)... so don't bother wasting your time trying to fake it.

The fact that your compiler/linker doesn't return errors really just tells me that you need to turn up the warning level on your compiler and linker...