为什么Java可以有多个Main,你可以决定运行哪个java文件,但对于C++,你只有一个Main?

sta*_*ver -2 c++ java

每次我写C++,我都需要把不同的代码放到main中,有没有办法让它变得简单,就像a1.cpp有main,a2.cpp有另一个main,比如a1.cpp

int main() {
    printf("a1");
}
Run Code Online (Sandbox Code Playgroud)

在a2.cpp

int main() {
    printf("a2");
}
Run Code Online (Sandbox Code Playgroud)

当你运行a1.cpp时你得到a1打印输出,当你运行时a2,你得到字符串a2,我该怎么办呢?

Che*_*Alf 5

技术性:您可以main在C++程序中拥有任意数量的函数,但只有一个函数可以在全局命名空间中使用extern链接.

如果你想在C++程序中有多个入口点,最简单的可能是使用命令行参数,并根据参数将主要main调度发送到其他启动函数.

另一种方法是构建多个可执行文件,一个用于您想要的每个启动功能.您可以通过使用该启动函数链接目标代码文件来选择启动功能.或者,您可以使用预处理程序指令有条件地仅包含main每个构建的相关定义.

另一种替代方案是系统特定的,它是创建一个具有多个导出函数的Windows DLL.然后可以通过rundll32.exe标准Windows程序运行32位此类DLL .