我正在经历C和C ++的差异,我发现了一个棘手的问题。能否详细说明以下几点:
main()
函数。 main()
函数。如何从另一个函数调用main()
以及它的用例是什么?
答案 0 :(得分:0)
main
(有充分的理由)...并不是说任何编译器都可能阻止你(我不认为他们中的大多数都在乎)。
一个明显的解决方法是将main
的功能移动到容器函数中并从那里调用它,如@KlasLindbäck所建议。
即
int my_application(int argc, char const * argv[]) {
// do stuff
return 0;
}
int main(int argc, char const * argv[]) {
return my_application()
}
另一个“hack”可能只是因为编译器允许你调用main
(正如@KlasLindbäck在评论中指出的那样),它将使用函数指针。即。
int main(int argc, char const * argv[]) {
// do stuff
}
// shouldn't compile... but hey, you never know.
int (*prt_to_main)(int, char const* argv[]) = main;
void test_run(void) {
prt_to_main(0, NULL);
}