gpt4 book ai didi

c - 如何从 C 中的其他函数调用 main()

转载 作者:行者123 更新时间:2023-11-30 16:58:47 24 4
gpt4 key购买 nike

我在研究 C 和 C++ 的差异时发现了一个棘手的点。您能否详细说明以下几点:

  1. 在C中,我们可以通过其他函数调用main()函数。
  2. 在C++中,我们不能通过其他函数调用main()函数。

如何从另一个函数调用 main() 以及它的用例是什么?

最佳答案

@TrevorHickey 击中要害(他的答案去哪里了?) - C++ 禁止从不同的函数中调用 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(argc, argv);
}

另一个可能只起作用的“黑客”是使用函数指针,因为编译器无论如何都让你调用 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);
}

关于c - 如何从 C 中的其他函数调用 main(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38560971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com