The only language in which I've used "multiple main" functions is Java. There you can put a
public static void main(String[] args)
into an class and you can start the main() function of any class from the IDE (for example Eclipse). This can be useful to put in small test cases into the classes. Still, when you finally package your product you have to mark one of these classes as the main class (like com.mycompany.MainClass) in your manifest file and when someone starts your program (for example from a jar file) then only one main is valid.
In C you don't even have namespaces (like packages and classes in java) so you simply can't implement features like this. If you want test functions in several places (like in java) then you can do that this way:
Something.c:
... blah blah normal release code of Something.c ...
#if BUILD_DEBUG
void MyTestCode_2()
{
... blah blah blah ...
}
#endif
main.c:
int main(int argc, char* argv[])
{
#if BUILD_DEBUG
if (1)
{
void MyTestCode_2();
MyTestCode_2();
return 0;
}
#endif
... original main code ...
}